FR2738366A1 - Processeur informatique presentant une architecture pipeline et procede d'utilisation de celui-ci - Google Patents
Processeur informatique presentant une architecture pipeline et procede d'utilisation de celui-ci Download PDFInfo
- Publication number
- FR2738366A1 FR2738366A1 FR9610367A FR9610367A FR2738366A1 FR 2738366 A1 FR2738366 A1 FR 2738366A1 FR 9610367 A FR9610367 A FR 9610367A FR 9610367 A FR9610367 A FR 9610367A FR 2738366 A1 FR2738366 A1 FR 2738366A1
- Authority
- FR
- France
- Prior art keywords
- signals
- logarithm
- signal
- term
- computer processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/4833—Logarithmic number system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0307—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/5235—Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Nonlinear Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Un processeur informatique qui effectue des opérations dans un système de nombres logarithmiques (LNS) comporte un convertisseur de logarithme (20), un pipeline de données (22) une pluralité d'éléments de traitement (231a à f) couplés à des étages respectifs (24a à d) du pipeline de données, un convertisseur de logarithme inverse (28) et un accumulateur programmable (232). Une instruction est décodée par une unité de commande (234) de façon à configurer le processeur informatique pour qu'il effectue des opérations sur un ou plusieurs flux de données. Plusieurs opérations mathématiques peuvent être effectuées par le processeur. Le processeur informatique peut être utilisé comme un coprocesseur (340) dans un système informatique d'utilisation générale.
Description
Titre
PROCESSEUR INFORMATIQUE PRESENTANT UNE ARCHITECTURE
PIPELINE ET PROCEDE D'UTILISATION DE CELUI-CI
Inventions apparentées
La présente invention concerne les inventions suivantes qui sont cédées au même cessionnaire que celui de la présente invention
(1) "Processeur informatique utilisant la conversion logarithmique et procédé d'utilisation de celui-ci", portant le numéro de série 08/403158, déposé le 13/3/95.
PROCESSEUR INFORMATIQUE PRESENTANT UNE ARCHITECTURE
PIPELINE ET PROCEDE D'UTILISATION DE CELUI-CI
Inventions apparentées
La présente invention concerne les inventions suivantes qui sont cédées au même cessionnaire que celui de la présente invention
(1) "Processeur informatique utilisant la conversion logarithmique et procédé d'utilisation de celui-ci", portant le numéro de série 08/403158, déposé le 13/3/95.
(2) "Circuit d'élévation à une puissance utilisant un registre à décalage et procédé d'utilisation de celuici", portant le numéro de série 08/401515, déposé le 10/3/95.
(3) "Circuit accumulateur et procédé d'utilisation de celui-ci", portant le numéro de série 08/455,927, déposé le 31/5/95.
(4) "Convertisseur de logarithme/logarithme inverse et procédé d'utilisation de celui-ci", portant le numéro de série 08/381368, déposé le 31/1/95.
(5) "Convertisseur logarithme/logarithme inverse utilisant un terme de deuxième ordre et procédé d'utilisation de celui-ci", portant le numéro de série 08/382467, déposé le 31/1/95.
(6) "Convertisseur de logarithme/logarithme inverse utilisant une interpolation linéaire et procédé d'utilisation de celui-ci", portant le numéro de série 08/391880, déposé le 22/2/95.
(7) "Convertisseur de logarithme/logarithme inverse utilisant la série de Taylor tronquée et procédé d'utilisation de celui-ci", portant le numéro de série 08/381167, déposé le 31/1/95.
(8) "Convertisseur de logarithme utilisant un décalage et procédé d'utilisation de celui-ci", portant le numéro de série , déposé le 28/7/95.
La valeur des inventions apparentées identifiées ci-dessus est incorporée en tant que référence dans la description de l'invention.
Domaine de l'invention
La présente invention concerne de façon générale les ordinateurs et, en particulier, un processeur informatique présentant des éléments de traitement multiples et une architecture fondée sur la réalisation d'opérations dans le système de nombres logarithmiques (LNS).
La présente invention concerne de façon générale les ordinateurs et, en particulier, un processeur informatique présentant des éléments de traitement multiples et une architecture fondée sur la réalisation d'opérations dans le système de nombres logarithmiques (LNS).
Arrière-plan de l'invention
Les processeurs informatiques sont bien connus et largement utilisés à des fins multiples. Une application des processeurs informatiques est le traitement numérique des signaux (DSP). Par définition, le traitement numérique des signaux concerne la représentation de signaux en séquences de nombres ou symboles et le traitement de ces signaux. Le traitement numérique des signaux présente une grande variété d'applications et son importance est évidente dans des domaines tels que la reconnaissance des formes, les radiocommunications, les télécommunications, les radars, l'ingénierie biomédicale, et beaucoup d'autres.
Les processeurs informatiques sont bien connus et largement utilisés à des fins multiples. Une application des processeurs informatiques est le traitement numérique des signaux (DSP). Par définition, le traitement numérique des signaux concerne la représentation de signaux en séquences de nombres ou symboles et le traitement de ces signaux. Le traitement numérique des signaux présente une grande variété d'applications et son importance est évidente dans des domaines tels que la reconnaissance des formes, les radiocommunications, les télécommunications, les radars, l'ingénierie biomédicale, et beaucoup d'autres.
Au coeur de chaque système de traitement numérique des signaux se trouve un processeur informatique qui effectue des opérations mathématiques sur des signaux. En général, les signaux reçus par un système de traitement numérique des signaux sont d'abord convertis en un format numérique utilisé par le processeur informatique.
Ensuite, le processeur informatique exécute une série d'opérations mathématiques sur le signal numérisé. Le but de ces opérations peut être d'estimer les paramètres caractéristiques du signal ou de transformer le signal en une forme qui est dans un certain sens plus souhaitable.
Ces opérations mettent généralement en oeuvre des opérations mathématiques compliquées et entraînent un traitement numérique intensif. Parmi les exemples d'opérations mathématiques qui peuvent être effectuées par des systèmes de traitement numérique des signaux, on trouve la multiplication de matrice, l'inversion de matrice, les transformations accélérées de Fourier (FFT), la corrélation propre et croisée, les transformations de cosinus discret (DCT), les équations polynomiales et les équations de différence en général, telles que celles utilisées pour des filtres à réponse impulsionnelle infinie (RII) et des filtres à réponse impulsionnelle finie (RIF).
La conception et les fonctions des processeurs informatiques varient considérablement. Un aspect de la configuration d'un processeur est son architecture. En général, le terme architecture d'un ordinateur concerne le jeu d'instructions et l'organisation d'un processeur.
Un jeu d'instructions est un groupe d'instructions visibles par le programmeur utilisé pour programmer le processeur. Par ailleurs, l'organisation d'un processeur concerne sa structure et sa composition globales de ressources de calculs, par exemple la structure de bus, la configuration de la mémoire et le nombre d'éléments de traitement. Un élément de traitement, dans un sens large, est un dispositif contenu dans un processeur informatique qui effectue des opérations logiques ou arithmétiques sur les données qu'il reçoit. Par exemple, un élément de traitement peut être aussi simple qu'un circuit additionneur qui additionne deux valeurs ou il peut être aussi complexe qu'une unité centrale de traitement (CPU) qui effectue une grande variété d'opérations différentes.
Dans un ordinateur, un certain nombre de techniques d'organisation différentes peut être utilisé pour augmenter la vitesse d'exécution. Un exemple de cette technique est le chevauchement d'exécution. Le chevauchement d'exécution est fondé sur la notion de fonctionnement d'un ordinateur comme une chaîne de montage présentant une série infinie d'opérations à plusieurs étapes d'accomplissement. Le chevauchement d'exécution permet à ces opérations de se chevaucher et d'être exécutées simultanément.
Une forme couramment utilisée de chevauchement d'exécution est le traitement "pipeline". Dans un ordinateur, le traitement "pipeline" est une technique de mise en oeuvre qui permet à une séquence d'opérations semblables d'être effectuée sur différents arguments. Le calcul devant être effectué pour une instruction spécifique est divisé en parties plus petites, c'est-àdire en opérations, et chacune utilise une fraction du temps nécessaire pour effectuer l'instruc aon complète.
Chacune de ces parties est appelée un étage du traitement "pipeline", ou simplement un étage. Les étages sont reliés en une séquence pour former un pipeline, les arguments de l'instruction entrent à une extrémité, sont traités à travers les étages, et ressortent à l'autre extrémité.
I1 existe plusieurs architectures différentes, allant des architectures d'ordinateur à jeu d'instructions complexe (CISC), à des architectures d'ordinateur à jeu d'instructions réduit (RISC). De plus, certaines architectures ne présentent qu'un élément de traitement, alors que d'autres comportent deux éléments de traitement ou plus. Malgré des différences d'architecture, tous les processeurs informatiques ont un but commun, qui est de fournir la plus haute performance au plus faible coût. Toutefois, la performance d'un processeur informatique dépend considérablement du problème auquel le processeur est soumis, et il existe peu de processeurs informatiques à faible coût, voire aucun, capables d'effectuer les opérations mathématiques énumérées ci-dessus à des vitesses requises pour certaines des applications les plus demandées aujourd'hui. Par exemple, la compression de données MPEG d'un signal de télévision NTSC ne peut être effectuée qu'en utilisant des super-ordinateurs ou un matériel à objectifs spéciaux onéreux.
Beaucoup d'autres applications, telles que les transformations de matrice sur des graphiques en temps réel, nécessitent des débits de données qui dépassent les capacités des processeurs uniques et peu coûteux, tels que les micro-processeurs et les puces de traitement numérique disponibles dans le commerce. Au lieu de cela, ces applications nécessitent l'utilisation d'ordinateurs à processeurs multiples ou multiprocesseur qui sont onéreux. Bien que les ordinateurs à multiprocesseur présentent généralement des débits plus élevés, ils comportent également des jeux d'instructions complexes et sont généralement difficiles à programmer.
Ainsi, il y a une demande pour un processeur informatique qui exécute des opérations mathématiques à vitesse élevée tout en restant peu onéreux. I1 y a également une demande pour un processeur informatique qui présente un jeu d'instructions simple et qui peut être programmé facilement pour fournir les opérations mathématiques souhaitées. De plus, il y a une demande pour un processeur informatique qui présente un débit de données élevé. Un processeur de ce type doit également être petit et consommer relativement peu d'électricité.
Brève description des dessins
Les particularités de l'invention sont précisément énoncées dans les revendications jointes. Toutefois, d'autres caractéristiques de l'invention apparaîtront plus clairement et l'invention sera mieux comprise en faisant référence à la description détaillée suivante ainsi qu'aux dessins joints sur lesquels
La figure 1 illustre un schéma fonctionnel d'un processeur informatique selon un premier mode de réalisation de la présente invention.
Les particularités de l'invention sont précisément énoncées dans les revendications jointes. Toutefois, d'autres caractéristiques de l'invention apparaîtront plus clairement et l'invention sera mieux comprise en faisant référence à la description détaillée suivante ainsi qu'aux dessins joints sur lesquels
La figure 1 illustre un schéma fonctionnel d'un processeur informatique selon un premier mode de réalisation de la présente invention.
La figure 2 représente un schéma fonctionnel détaillé d'un circuit convertisseur utilisé soit dans le convertisseur de logarithme soit dans le convertisseur de logarithme inverse représentés sur la figure 1.
La figure 3 représente un schéma fonctionnel détaillé d'un élément de traitement utilisé par le processeur informatique de la figure 1.
La figure 4 est un tableau illustrant les codes d'exposants qui peuvent être utilisés avec l'élément de traitement de la figure 3.
La figure 5 illustre un processeur informatique selon un deuxième mode de réalisation de la présente invention.
La figure 6 illustre un schéma fonctionnel détaillé de l'accumulateur incorporé dans le processeur informatique de la figure 5.
La figure 7 illustre un schéma fonctionnel détaillé d'un groupe d'additionneurs utilisés par l'accumulateur de la figure 7.
La figure 8 illustre un schéma fonctionnel détaillé d'un additionneur secondaire utilisé par l'accumulateur de la figure 7.
La figure 9 illustre un processeur informatique selon un troisième mode de réalisation de la présente invention.
La figure 10 illustre un format d'instructions utilisé par le processeur informatique représenté sur la figure 9.
La figure 11 illustre un processeur informatique selon un quatrième mode de réalisation de la présente invention.
La figure 12 illustre un processeur informatique selon un cinquième mode de réalisation de la présente invention.
La figure 13 illustre un processeur informatique selon un sixième mode de réalisation de la présente invention.
La figure 14 représente un organigramme d'un procédé d'utilisation de l'un des processeurs informatiques représentés sur les figures 1, 5 et 10 pour générer au moins un signal de sortie.
La figure 15 représente un organigramme d'un procédé d'utilisation de l'un des processeurs informatiques représentés sur les figures 11 à 13 pour générer des signaux de sortie.
La figure 16 représente un schéma fonctionnel d'un système informatique numérique qui incorpore un processeur informatique pouvant être utilisé dans la présente invention.
Description détaillée d'un mode de réalisation préféré
De façon générale, la présente invention fournit un processeur informatique qui reçoit une pluralité de signaux d'entrée et génère ensuite au moins un signal de sortie. Les signaux d'entrée et de sortie sont généralement interprétés comme étant des mots numériques qui représentent des données numériques.
De façon générale, la présente invention fournit un processeur informatique qui reçoit une pluralité de signaux d'entrée et génère ensuite au moins un signal de sortie. Les signaux d'entrée et de sortie sont généralement interprétés comme étant des mots numériques qui représentent des données numériques.
Un avantage de la présente invention est qu'elle propose un processeur informatique capable d'effectuer des opérations mathématiques sophistiquées à des vitesses de traitement élevées. Le processeur peut être utilisé pour des multiplications de matrice, des inversions de matrice, des transformations accélérées de Fourier (FFT), des corrélations propres et croisées, des transformations de cosinus discret (DCT), des équations polynomiales, des calculs de normes L1 et L2 et des équations de différence en général, telles que celles utilisées pour les filtres à réponse impulsionnelle infinie (RII), et les filtres à réponse impulsionnelle finie (RIF). Un autre avantage de la présente invention est qu'elle propose un processeur informatique présentant un débit de données élevé.Un autre avantage de la présente invention est qu'elle propose un processeur informatique qui est mis en oeuvre de façon efficace dans une micro-puce, et qui est par conséquent petit et consomme relativement peu d'électricité.
La figure 1 illustre un processeur informatique selon un premier mode de réalisation de la présente invention. Le processeur informatique comprend un convertisseur de logarithme d'entrée 20, un pipeline de données 22, une pluralité d'éléments de traitement 26a à d, un convertisseur de logarithme inverse 28, et un accumulateur 29. Le pipeline de données 22 comporte une pluralité d'étages 24a à d ayant une correspondance un à un avec les éléments de traitement 26a à d.
Le fonctionnement du processeur commence lorsqu'une pluralité de signaux d'entrée est reçue par le convertisseur de logarithme d'entrée 20. En réponse à ces entrées, le convertisseur de logarithme d'entrée 20 génère une pluralité de signaux de logarithme qui sont à leur tour reçus par un premier étage 24a du pipeline de données 22. Le pipeline de données 22 fournit de façon séquentielle les signaux de logarithme à chacun des étages 24a à d. Chacun des éléments de traitement 26a à d est couplé de façon à fonctionner et reçoit les signaux de logarithme par le biais d'un étage respectif. L'étage respectif peut être l'un quelconque des étages 24a à d du pipeline de données 22.Tel que représenté, le premier élément de traitement 26a est connecté au premier étage 24a ; le deuxième élément de traitement 26b est connecté au deuxième étage 24b ; le troisième élément de traitement 26c est connecté au troisième étage 24c ; et le quatrième élément de traitement 26d est connecté au quatrième étage 24d. Chaque élément de traitement 26a à d génère un signal de terme en réponse à chaque signal de logarithme. Le convertisseur de logarithme inverse 28 effectue une conversion logarithmique inverse des signaux de terme afin de générer une pluralité de signaux de logarithme inverse qui sont reçus par l'accumulateur 29.
L'accumulateur 29 additionne les signaux de logarithme inverse pour produire un signal de sortie.
Le pipeline de données 22 comporte un moyen quelconque permettant de mettre une séquence de signaux de logarithme en mémoire tampon, tel qu'une pluralité de registres ou une mémoire multiport. Dans l'exemple représenté, les étages 24a à d représentent des registres qui sont disposés de façon à fournir simultanément une séquence de signaux de logarithme aux éléments de traitement 26a à d. Par exemple, si le premler étage 24a contient un signal de logarithme x(t), où t représente un temps discret, le deuxième étage 24b contient x(t-i), le troisième étage 24c contient x(t-2), et le énième étage 24d contient x(t-n).
Chaque élément de traitement 26a à d effectue une ou plusieurs opérations ce qui entraîne qu'au moins une valeur de terme est générée en sortie. Dans un mode de réalisation de la présente invention, chaque élément de traitement 26a à d produit un signal de terme qui est fondé sur une équation
y = w + x Equation 1 où y représente un signal de terme, w représente une valeur de coefficient et x représente l'un des signaux de logarithme.
y = w + x Equation 1 où y représente un signal de terme, w représente une valeur de coefficient et x représente l'un des signaux de logarithme.
Dans un mode de réalisation préféré de la présente invention, chaque élément de traitement 26a à d génère le signal de terme fondé sur l'équation suivante
n y = w + E g|xj Equation 2
i=m où y représente le signal de terme, w représente une valeur de coefficient, xi représente un énième signal logarithmique reçu par l'élément de traitement, gi représente une valeur d'exposant correspondant au énième signal logarithmique et i, m et n sont des entiers quelconques.
n y = w + E g|xj Equation 2
i=m où y représente le signal de terme, w représente une valeur de coefficient, xi représente un énième signal logarithmique reçu par l'élément de traitement, gi représente une valeur d'exposant correspondant au énième signal logarithmique et i, m et n sont des entiers quelconques.
Chaque élément de traitement peut comporter une mémoire cache (non représentée) permettant de mémoriser au moins une valeur de coefficient et d'exposant. Dans ce cas, les éléments de traitement 26a à d reçoivent une adresse qui est concomitante à chaque signal de logarithme. L'adresse est utilisée pour récupérer dans la mémoire cache une valeur d'exposant et de coefficient respective.
En plus de produire les signaux de sortie, l'accumulateur 29 peut également générer des adresses de sortie qui sont concomitantes aux signaux de sortie. Les adresses de sortie peuvent être utilisées par des dispositifs externes pour identifier des signaux de sortie individuels. Dans un mode de réalisation de la présente invention, les adresses de sortie sont mémorisées dans des mémoires mortes (ROM, non représentées), qui sont situées dans les éléments de traitement 26a à d. Les éléments de traitement 26a à d font passer les adresses de sortie vers l'accumulateur 29. Chaque signal de logarithme inverse a une adresse de sortie associée. Dans des circonstances où les signaux de logarithme inverse sont combinés en un signal de sortie unique, l'accumulateur 29 choisit une adresse de sortie associée devant être produite avec le signal de sortie.
La figure 2 représente un schéma fonctionnel détaillé d'un circuit convertisseur utilisé soit dans un convertisseur de logarithme d'entrée 20, soit dans un convertisseur de logarithme inverse 28 représenté sur la figure 1. Dans un mode de réalisation préféré de la présente invention, le convertisseur de logarithme d'entrée 20 et le convertisseur de logarithme inverse 28 comportent le convertisseur de logarithme/logarithme inverse décrit dans l'invention apparentée identifiée cidessous nO 4.Toutefois, l'homme du métier remarquera que tout autre convertisseur de logarithme/logarithme inverse, y compris ceux décrits dans les inventions apparentées identifiées ci-dessus nO 5 à 8, pourrait être incorporé à la place de ceux-ci soit dans le convertisseur de logarithme 20 soit dans le convertisseur de logarithme inverse 28 sans modifier a portée et l'esprit de la présente invention.
Le circuit convertisseur peut être utilisé de façon analogue pour calculer soit des signaux de logarithme, soit des signaux de logarithme inverse ; ainsi, à des fins de concision, ce qui suit va décrire l'utilisation du circuit convertisseur pour générer des signaux logarithmiques, et on comprendra que le circuit convertisseur peut être utilisé de la même façon pour calculer les signaux de logarithme inverse.
Le circuit convertisseur comprend une mémoire 41 et un générateur de signaux 43. La mémoire 41 mémorise une pluralité de paramètres et fournit en sortie au moins un paramètre associé à chaque signal d'entrée. Le générateur de signaux 43 reçoit les signaux d'entrée et les paramètres et, à son tour, génère les signaux de logarithme en estimant une fonction logarithmique avec un polynôme.
Le générateur de signaux 43 comporte un multiplicateur 47, un premier additionneur 48 et un deuxième additionneur 49. La mémoire 41 mémorise une pluralité de termes de deuxième ordre dans une table à consulter de deuxième ordre 32 et une pluralité de paires de paramètres. Le paramètre au nombre d'au moins un comporte les termes de deuxième ordre et les paires de paramètres. Les paires de paramètres et les termes de deuxième ordre sont calculés en utilisant une méthode des plus petits carrés pour estimer une fonction logarithmique sur un domaine de signaux d'entrée. Chaque paire de paramètres a un paramètre d'ordre zéro, qui est mémorisé dans une table à consulter d'ordre zéro 30, et un paramètre de premier ordre qui est mémorisé dans une table à consulter de premier ordre 31.
Le convertisseur fonctionne comme suit. Un signal d'entrée 34 fournit une adresse 36 qui est utilisée pour récupérer une paire de paramètres correspondants dans les tables à consulter d'ordre zéro et de premier ordre 30, 31. Le signal d'entrée 34 est une valeur binaire ayant une longueur de 23 bits, dénommée [22:0], dans laquelle les neuf bits de poids fort [22:14] du signal d'entrée 34 sont fournis à la mémoire 41 en tant qu'adresse 36. Une adresse de terme 38 dérive également du signal d'entrée 34. L'adresse de terme 38 est utilisée pour récupérer le terme de deuxième ordre 46 dans la table à consulter de deuxième ordre 32. Le signal d'entrée 34 est un mot numérique ayant une partie supérieure et une partie inférieure, la partie supérieure comportant les neuf bits de poids fort (22:14) et la partie inférieure comportant les 14 bits restants (13:0).L'adresse de terme 38 est une valeur de neuf bits, qui comprend les quatre bits de poids fort de la partie supérieure enchaînés avec les cinq bits de poids fort de la partie inférieure, c'est-àdire les bits [22:19] [13:9] du signal d'entrée 34.
Le paramètre d'ordre zéro 42 est une valeur binaire de 24 bits, le paramètre de premier ordre 44 est une valeur de 15 bits, et le terme de deuxième ordre 46 est une valeur de 9 bits. Un total de 512 paires de paramètres et de 512 termes de deuxième ordre est mémorisé dans la mémoire 41.
Le multiplicateur 47 multiplie le paramètre de premier ordre 44 par une tranche de bit 40 de façon à produire un terme proportionnel. Bien que la tranche de bit 40 puisse comporter la totalité du signal d'entrée 34, il comporte généralement les quatorze bits de poids faible [13:0] du signal d'entrée 34. Le premier additionneur 48 additionne le terme proportionnel et le terme de deuxième ordre 46 de façon à produire une première somme. A son tour, le deuxième additionneur 49 additionne la première somme et le paramètre d'ordre zéro 42 de façon à produire un signal de logarithme 50 d'une longueur de 23 bits.
Pour utiliser le circuit convertisseur de la figure 2 dans le convertisseur de logarithme inverse 28, on charge la mémoire 41 avec un jeu de paramètres différent.
Ces paramètres comportent des paires de paramètres et des termes de deuxième ordre qui sont calculés en utilisant la méthode des plus petits carrés pour estimer une fonction de logarithme inverse sur le domaine des signaux de terme, qui sont remplacés par les signaux d'entrée 34.
Chacun des signaux de terme est fourni en tant que signal d'entrée 34, et le signal de logarithme 50 est interprété pour signifier le signal de logarithme inverse.
Les signaux d'entrée du processeur informatique de la figure 1 peuvent représenter des valeurs numériques selon le format de virgule flottante à 32 bits de la norme IEEE. Les valeurs représentées en tant que nombres à virgule flottante IEEE ont un bit de signe, une mantisse de 23 bits et un exposant de 8 bits. Seule la mantisse est fournie au circuit convertisseur de la figure 2 en tant que signal d'entrée 34. Le bit de signe et l'exposant évitent tous deux le circuit convertisseur et sont plus tard combinés au signal de logarithme 50.
Cette combinaison donne naissance à une valeur qui est représentée dans un format du système de nombre logarithmique (LNS), ayant un bit de signe, une partie fractionnaire de j bits et une partie entière de k bits.
Les entiers j et k peuvent varier en fonction de la précision du convertisseur souhaitée.
La figure 3 représente un schéma fonctionnel détaillé d'un élément de traitement 218 servant d'exemple et utilisé par un processeur informatique de la figure 1.
La structure interne de chaque élément de traitement 26a à d est de préférence fondée sur les architectures décrites dans l'invention apparentée identifiée ci-dessus nO 2. L'élément de traitement 218 comporte un premier multiplexeur 199 (mux), un deuxième multiplexeur 203, un troisième multiplexeur 210, un quatrième multiplexeur 211, un premier circuit additionneur 208, un deuxième circuit additionneur 212, un registre 214 et une unité de commande 201.
Les signaux de logarithme reçus de l'étage respectif sont distribués par un bus 190 au premier multiplexeur 199 et au deuxième multiplexeur 203. Chaque multiplexeur choisit l'une des quatre entrées. Les premier et deuxième multiplexeurs présentent des entrées de transmission 193a-b et des entrées nulles 194a-b. De plus, le premier multiplexeur 199 présente une entrée décalée sur la gauche de 1 bit 195 et une entrée décalée sur la droite de 1 bit 196 ; alors que le deuxième multiplexeur 203 présente une entrée inversée 197 et une entrée décalée sur la gauche de 2 bits 198. Les entrées des premier et deuxième multiplexeurs 199, 203 sont respectivement choisies selon un premier signal de multiplexeur 200 et un deuxième signal de multiplexeur 202.
Les différentes entrées des premier et deuxième multiplexeurs 199, 203 comprennent différentes tranches d'un signal de logarithme reçu. Par exemple, les entrées de transmission 193a-b fournissent simplement le signal de logarithme reçu dans son état d'origine, alors que les entrées nulles 194a-b sont des mots numériques dont tous les bits sont fixés à zéro. Par ailleurs, l'entrée décalée sur la gauche de 1 bit 195 fournit de façon effective le signal de logarithme ayant été décalé d'un bit sur la gauche. Cela est effectué en connectant les n 1 bits situés le plus à droite du bus 192 aux n-l bits situés le plus à gauche de l'entrée décalée sur la gauche de 1 bit 195, où n est le nombre de bits du signal de logarithme. Le zéro est fourni au bit de poids faible (le bit situé le plus à droite) de l'entrée décalée sur la gauche de 1 bit 195.L'entrée décalée sur la gauche de 2 bits 198 fournit de façon effective le signal de logarithme ayant été décalé de 2 bits sur la gauche. Cela est effectué en connectant les n-2 bits situés le plus à droite du bus 192 aux n-2 bits situés le plus à gauche de l'entrée décalée sur la gauche de deux bits 198. Le zéro est fourni aux deux bits de poids faible de l'entrée décalée sur la gauche de 2 bits 198. L'entrée décalée sur la droite de 1 bit 196 fournit de façon effective le signal de logarithme ayant été décalé d'un bit sur la droite. Cela est accompli en connectant les n-l bits situés le plus à gauche du bus 192 aux n-1 bits situés le plus à droite de l'entrée du multiplexeur. Le zéro est fourni au bit de poids fort (le bit situé le plus à gauche) de l'entrée du multiplexeur. L'entrée inversée 197 est créée en inversant les bits du signal de logarithme.Cela fournit la forme du complément à 1 du signal de logarithme.
Le premier circuit additionneur 208 additionne les sorties des premier et deuxième multiplexeurs 199, 203.
Le premier additionneur 208 réagit également à un bit de report 206 et à un signal de validation de l'additionneur 205. La sortie du premier additionneur 208 est fournie au troisième multiplexeur 210. Le troisième multiplexeur 210 choisit soit la sortie du premier multiplexeur 199, du deuxième multiplexeur 203, soit celle du premier circuit additionneur 208 en fonction d'un troisième signal du multiplexeur 204 qui est généré par l'unité de commande 201.
Le deuxième additionneur 212 additionne les sorties du troisième multiplexeur 210 et une valeur mémorisée qui est fournie sur une chaîne de retour 216. La sortie du deuxième circuit additionneur 212 est mémorisée dans le registre 214. Au départ, le registre 214 peut être préchargé avec une valeur, telle qu'une valeur de coefficient ou zéro. La sortie du registre 214 est fournie à la chaîne de retour 216 sous la forme de signaux de terme. Le quatrième multiplexeur 211 fournit de façon sélective soit le signal fourni par la chaîne de retour 216, soit une valeur de coefficient au deuxième additionneur 212. La valeur du coefficient et un quatrième signal du multiplexeur permettant de sélectionner la sortie du multiplexeur sont fournis par le biais d'un quatrième bus du multiplexeur 209.
L'unité de commande 201 comporte en général une mémoire cache (non représentée) permettant de mémoriser une pluralité de codes d'exposants et de valeurs de coefficient, dans laquelle chaque valeur mémorisée correspond à un signal de logarithme respectif. L'élément de traitement 218 reçoit une pluralité d'adresses concomitantes aux signaux de logarithme. Les adresses sont utilisées par l'unité de commande 201 pour récupérer les valeurs de données mémorisées qui correspondent aux signaux de logarithme. Lorsqu'un signal de logarithme est reçu par l'élément de traitement 218, l'unité de commande 201 récupère et décode un code d'exposant associé afin de générer les premier, deuxième, troisième et quatrième signaux du multiplexeur ; le signal de validation de l'additionneur 205 ; et le bit de report 206. Selon la fonction qui est effectuée par le processeur informatique, l'unité de commande 201 peut également récupérer une valeur de coefficient pour chaque signal de logarithme. Par exemple, lorsque le processeur informatique effectue une fonction linéaire, tel qu'un filtre RIF ou RII, l'unité de commande 201 fournit une valeur de coefficient au deuxième additionneur 212 pour chaque signal de logarithme reçu par l'élément de traitement 218.
En fonctionnement, l'élément de traitement 218 peut calculer un signal de terme à partir d'un seul signal d'entrée ou un signal de terme calculé à partir dune séquence de signaux d'entrée.
Tels que décrits conjointement avec la figure 2 de l'invention apparentée identifiée ci-dessus nO 2, les éléments de traitement peuvent être mis en oeuvre en utilisant un seul circuit additionneur plutôt que deux circuits additionneurs. Un élément de traitement d'un additionneur unique peut être utilisé par un autre mode de réalisation de la présente invention. Bien qu'avec cette configuration l'élément de traitement effectue l'opération d'addition plus lentement, il réduit considérablement la zone requise par l'élément de traitement lorsqu'il est mis en oeuvre en utilisant un circuit intégré.
La figure 4 est un tableau illustrant les codes d'exposants qui peuvent être utilisés avec l'élément de traitement 218 de la figure 3. Le tableau énumère les codes ainsi que les signaux du multiplexeur correspondants qui sont utilisés dans le mode de réalisation préféré de la présente invention. Le tableau illustre également les valeurs du bit de report 206 et du signal de validation de l'additionneur 205 générées en réponse à chacun des codes d'exposants. Chaque ligne du tableau donne les valeurs des signaux et le bit de report correspondant à l'un des codes d'exposants.
Par exemple, sur la première ligne, le code d'exposant "000" indique que x-1 doit être généré par l'élément de traitement 218. Si le code d'exposant pour un signal d'entrée est "000", le premier signal du multiplexeur 200 est laissé de côté, le deuxième signal du multiplexeur 202 est fixé de façon à choisir l'entrée inversée 197, le signal de validation de l'additionneur est fixé à zéro, invalidant ainsi le premier additionneur 208, le troisième signal du multiplexeur 204 est fixé de façon à choisir la sortie du deuxième multiplexeur 203 et le bit de report 206 est fixé à un. En effet, la forme du complément à 2 du signal de logarithme est générée par le deuxième circuit additionneur 212.
Sur la deuxième ligne, le code d'exposant "001" indique que x-1/2 doit être généré. Si le code d'exposant est "001" pour un signal d'entrée, le premier signal du multiplexeur 200 est fixé de façon à choisir l'entrée décalée sur la droite de 1 bit 196, le deuxième signal du multiplexeur 202 est fixé de façon à choisir l'entrée inversée 197, le signal de validation de l'additionneur 205 est fixé à un, validant ainsi le premier additionneur 208, le troisième signal du multiplexeur 204 est fixé de façon à choisir la sortie du premier additionneur 208 et le bit de report 206 est fixé à un pour le premier additionneur 208 et à zéro pour le deuxième additionneur 212.
Sur la troisième ligne, le code d'exposant "010" indique que x1/2 doit être généré. Si le code d'exposant est "010" pour un signal d'entrée, le premier signal du multiplexeur 200 est fixé de façon à choisir l'entrée décalée sur la droite de 1 bit 196, le deuxième signal du multiplexeur 202 est laissé de côté, le signal de validation de l'additionneur 205 est fixé à zéro, le troisième signal du multiplexeur 204 est fixé de façon à choisir la sortie du premier multiplexeur 199 et le bit de report 206 est fixé à zéro.
Sur la quatrième ligne, le code d'exposant "011" indique que x1 doit être généré. Si le code d'exposant est "011" pour un signal d'entrée, le premier signal du multiplexeur 200 est fixé de façon à choisir l'entrée de transmission 193a, le deuxième signal du multiplexeur 202 est laissé de côté, le signal de validation de l'additionneur 205 est fixé à zéro, le troisième signal du multiplexeur 204 est fixé de façon à choisir la sortie du premier multiplexeur 199, et le bit de report 206 est fixé à zéro.
Sur la cinquième ligne, le code d'exposant "100" indique que x2 doit être généré. Si le code d'exposant est "100" pour un signal d'entrée, le premier signal du multiplexeur 200 est fixé de façon à choisir l'entrée décalée sur la gauche de 1 bit 195, le deuxième signal du multiplexeur 202 est laissé de côté, le signal de validation de l'additionneur 205 est fixé à zéro, le troisième signal du multiplexeur 204 est fixé de façon à choisir la sortie du premier multiplexeur 199 et le bit de report 206 est fixé à zéro.
Sur la sixième ligne, le code d'exposant "101" indique que x3 doit être généré. Si le code d'exposant est "101" pour un signal d'entrée, le premier signal du multiplexeur 200 est fixé de façon à choisir l'entrée décalée sur la gauche de 1 bit 195, le deuxième signal du multiplexeur 202 est fixé de façon à choisir l'entrée de transmission 193b, le signal de validation de l'additionneur 205 est fixé à un, validant ainsi le premier additionneur 208, le troisième signal du multiplexeur 204 est fixé de façon à choisir la sortie du premier additionneur 208 et le bit de report 206 est fixé à zéro.
Sur la septième ligne, le code d'exposant "110" indique que x4 doit être généré. Si le code d'exposant est "110" pour un signal d'entrée, le premier signal du multiplexeur 200 est laissé de côté, le deuxième signal du multiplexeur 202 est fixé de façon à choisir l'entrée décalée sur la gauche de 2 bits 198, le signal de validation de l'additionneur 205 est fixé à zéro, le troisième signal du multiplexeur 204 est fixé de façon à choisir la sortie du deuxième multiplexeur 203 et le bit de report 206 est fixé à zéro.
Sur la huitième ligne, le code d'exposant "111" indique que x5 doit être généré. Si le code d'exposant pour un signal d'entrée est "111", le premier signal du multiplexeur 200 est fixé de façon à choisir l'entrée de transmission 193a, le deuxième signal du multiplexeur 202 est fixé de façon à choisir l'entrée décalée sur la gauche de 2 bits 198, le signal de validation de l'additionneur 205 est fixé à un, le troisième signal du multiplexeur 204 est fixé de façon à choisir la sortie du premier additionneur 208 et le bit de report 206 est fixé à zéro.
Un code d'exposant peut également être fourni pour indiquer que xO doit être généré. Bien qu'un tel code ne soit pas représenté sur la figure 4, il pourrait être facilement mis en oeuvre en fournissant un code d'exposant supplémentaire, tel que "1000", qui, lorsqu'il est décodé, fait en sorte que le premier signal du multiplexeur 200 choisisse l'entrée nulle 194b, que le signal de validation de l'additionneur 205 soit nul, que le troisième signal du multiplexeur choisisse la sortie du premier multiplexeur 199 et que le bit de report soit zéro. Le deuxième signal du multiplexeur 202 est laissé de côté.
La figure 5 illustre un processeur informatique selon un deuxième mode de réalisation de la présente invention. Le processeur informatique de la figure 5, qui est semblable au processeur représenté sur la figure 1, comporte le convertisseur de logarithme d'entrée 20, le pipeline de données 22 comprenant les étages 24a à d, et le convertisseur de logarithme inverse 28. Toutefois, contrairement au processeur de la figure 1, le processeur de la figure 5 comporte également un bus 230, un accumulateur programmable 232, une unité de commande 234 et une pluralité d'éléments de traitement pouvant être configurés 231a à d qui répondent au signal de commande à partir de l'unité de commande 234 et des signaux de logarithme reçus sur le bus 230.
Les éléments de traitement pouvant être configurés 231a à d assurent les mêmes fonctions que les éléments de traitement 26a à d de la figure 1 et, de plus, la structure interne de chaque élément de traitement 231a à d est fondée de préférence sur les architectures décrites dans l'invention apparentée identifiée ci-dessus n" 2.
Toutefois, contrairement aux éléments de traitement 26a à d de la figure 1, les éléments de traitement pouvant être configurés 231a à d peuvent recevoir individuellement des instructions de l'unité de commande 234 pour répondre aux signaux de logarithme fournis soit par le bus 230, soit par leur étage de pipeline respective. Cette fonctionnalité supplémentaire permet aux signaux de logarithme d'être soit diffusés soit distribués séquentiellement aux éléments de traitement 231a à d, ce qui permet en conséquence au processeur d'effectuer une large variété de calculs. Par exemple, lors du calcul d'un polynôme non linéaire, les signaux de logarithme sont généralement distribués à travers le bus 230, alors que, lors du calcul d'une fonction linéaire, tel qu'un filtre FIR, les signaux de logarithme passent généralement à travers le pipeline de données 22.
Dans un mode de réalisation de la présente invention, chaque élément de traitement 231a à d comporte un moyen permettant de placer de façon sélective soit son entrée de bus soit son entrée d'étage respectif dans un état d'impédance élevé. Dans un autre mode de réalisation de la présente invention, un démultiplexeur est utilisé pour choisir l'entrée.
Les éléments de traitement 231a à d peuvent également être configurés de façon à effectuer différentes fonctions selon le signal de commande à partir de l'unité de commande. Par exemple, si le processeur doit effectuer un certain calcul, tel qu'un
DFT ou une corrélation propre, chaque élément de traitement 231a à d peut recevoir des instructions pour utiliser un jeu spécifique de coefficients et de valeurs exponentielles (codes d'exposants) correspondants au calcul. Généralement, ces valeurs sont mémorisées à l'intérieur des éléments de traitement 231a à d.
DFT ou une corrélation propre, chaque élément de traitement 231a à d peut recevoir des instructions pour utiliser un jeu spécifique de coefficients et de valeurs exponentielles (codes d'exposants) correspondants au calcul. Généralement, ces valeurs sont mémorisées à l'intérieur des éléments de traitement 231a à d.
Le fonctionnement du processeur informatique se fait généralement comme suit. Au départ, le processeur informatique est configuré pour une durée de l'exécution.
Cela est effectué lorsqu'une instruction est reçue par l'unité de commande 234. L'unité de commande 234 décode ensuite l'instruction pour générer un premier signal de commande et un deuxième signal de commande. Le premier signal de commande est utilisé pour configurer l'accumulateur 232 de façon à effectuer des opérations d'addition spécifiques, alors que le deuxième signal de commande est utilisé pour configurer les éléments de traitement 231a à d.
Il existe plusieurs approches permettant de réaliser l'unité de commande 234. Dans un système numérique, l'unité de commande 234 peut être mise en oeuvre soit comme un coordonnateur de commande câblé, soit comme une unité de commande microprogrammable.
Généralement, un coordonnateur de commande câblé est une réalisation de circuit séquentiel d'un automate fini. Une unité de commande microprogrammable, d'un côté, génère des signaux de commande en décodant une séquence d'instructions qui est mémorisée dans une mémoire. Par exemple, un microprocesseur peut être utilisé pour mettre en oeuvre une unité de commande microprogrammable.
L'accumulateur 232 peut être configuré de façon à effectuer l'une quelconque des quatre fonctions différentes. Dans la première configuration, l'accumulateur 232 fonctionne comme un arbre additionneur. En d'autres termes, l'accumulateur 232 génère des signaux de sortie en additionnant les signaux de logarithme inverse associés à un ensemble prédéterminé d'éléments de traitement 231a à d. Dans la deuxième configuration, l'accumulateur 232 fonctionne comme une pluralité d'accumulateurs individuels. Sous cette configuration, chacun des accumulateurs individuels génère des signaux de sortie en additionnant les signaux de logarithme inverse associés à un élément de traitement prédéterminé parmi les éléments de traitement. Sous la troisième configuration, l'accumulateur 232 fonctionne comme un arbre additionneur utilisé conjointement avec une unité d'accumulation.Dans cette configuration, l'arbre additionneur additionne des signaux de logarithme inverse associés à l'ensemble prédéterminé les éléments de traitement, alors que l'unité d'accumulation additionne les sorties de l'arbre additionneur, dans le temps, pour produire des signaux de sortie. Sous la quatrième configuration, l'accumulateur 232 fait simplement passer les signaux de logarithme inverse en tant que signaux de sortie sans qu ' aucune addition ne soit effectuée.
Les éléments de traitement 231a à d impliqués dans les opérations d'addition sont prédéterminés en fonction de l'instruction reçue par l'unité de commande 234.
La figure 6 illustre un schéma fonctionnel détaillé de l'accumulateur incorporé dans le processeur informatique de la figure 5. Généralement, l'accumulateur 232 comporte un accumulateur décrit dans l'invention apparentée identifiée ci-dessus nO 3. Dans un mode de réalisation préféré de la présente invention, l'accumulateur 232 comprend une pluralité de groupes additionneurs 250a à d, un additionneur secondaire 252, un circuit d'addition final 254 et un multiplexeur 256.
Les groupes d'additionneurs 250a à d additionnent les signaux de logarithme inverse pour produire une pluralité de signaux primaires. Ces signaux primaires sont fournis en entrée à la fois à l'additionneur secondaire 252 et au multiplexeur 256. Chaque groupe d'additionneurs 250a à d présente une pluralité de ports de sortie ; et bien qu'un groupe d'additionneurs puisse présenter un nombre quelconque de ports de sortie, dans l'exemple représenté, chaque groupe d'additionneurs présente quatre ports de sortie. Tous les ports de sortie sont connectés au multiplexeur 256, alors que seul un port de sortie de chaque groupe d'additionneurs est connecté à l'additionneur secondaire 252. L'additionneur secondaire 252 additionne les signaux primaires de chacun des groupes additionneurs 250a à d de façon à générer au moins une somme secondaire. Les sommes secondaires sont ensuite fournie au circuit d'addition final 254 et au multiplexeur 256. Le circuit d'addition final 254 additionne, dans le temps, une séquence de sommes secondaires pour produire une somme finale. La somme finale est fournie au multiplexeur 256. L'unité de commande 234 fournit des signaux de commande aux groupes d'additionneurs 250a à d, à l'additionneur secondaire 252, au circuit d'addition final 254 et au multiplexeur 256 sur un bus de commande 258. En émettant plusieurs signaux de commande à différents instants, l'unité de commande 234 peut acheminer au moins une somme secondaire vers la sortie du multiplexeur et configurer chacun des groupes d'additionneurs 250a à d pour générer la somme primaire au nombre d'au moins une.
Le multiplexeur 256 choisit des sorties parmi les groupes additionneurs 250a à d, l'additionneur secondaire 252 ou le circuit d'addition final 254 devant être fourni en tant que signaux de sortie. Les signaux présentés en sortie sont déterminés en fonction d'une séquence de commande qui est exécutée par l'unité de commande 234.
L'unité de commande 234 peut configurer l'accumulateur 232 pour accumuler une combinaison quelconque de signaux de logarithme. Par exemple, l'accumulateur 232 peut être configuré pour accumuler individuellement les signaux de logarithme inverse associés à chacun des éléments de traitement 231a à d de façon à générer une pluralité de sommes de processeur individuel. Ces sommes peuvent ensuite être fournies séquentiellement sur la sortie du multiplexeur. Cela est effectué en fixant les groupes d'additionneurs 250a a d de façon qu'ils fonctionnent comme une pluralité d'accumulateurs en série. Le multiplexeur 256 choisit ensuite séquentiellement chaque sortie des groupes d'additionneurs 250a à d devant être fournis sur la sortie de l'ordinateur 140.Une autre configuration possible permet à tous les signaux de logarithme inverse d'être accumulés, sur une période de temps, en une somme unique. Cela peut être effectué par les groupes d'additionneurs 250a à d en additionnant leurs entrées respectives de façon à générer des sommes primaires. Les sommes primaires sont ensuite additionnées par l'additionneur secondaire 252 de façon à produire une somme secondaire qui représente le total des sorties des éléments de traitement pour un cycle d'addition donné.
Les sommes secondaires pour une pluralité de cycles d'addition peuvent ensuite être accumulées, dans le temps, par un circuit d'addition final 254 de façon à générer la somme unique. La sortie du circuit d'addition final 254 est choisie par le multiplexeur pour fournir les signaux de sortie.
La figure 7 illustre un schéma fonctionnel détaillé d'un groupe d'additionneurs pouvant être utilisé par l'accumulateur de la figure 6. Le groupe d'additionneurs comprend un bus 264, une pluralité de circuits d'addition 260a à h et une pluralité de commutateurs 266b à h.
L'unité de commande 234 est connectée à chacun des circuits d'addition par un bus de commande 258.
Un avantage considérable du groupe d'additionneurs est qu'il peut fonctionner soit comme un accumulateur parallèle, soit comme une pluralité d'accumulateurs en série. La fonction réelle du groupe d'additionneurs dépend d'une séquence de signaux de commande émis par l'unité de commande 234.
Les circuits d'addition 260a à h sont couplés de façon adjacente au bus 264. Chacun des circuits d'addition 260a à h présente un port bi-directionnel 270a à h et un port d'entrée 268a à h connectés au bus 264. En outre, chaque circuit d'addition présente un port de sortie 272a à h. Les circuits d'addition 260a à h reçoivent une pluralité de signaux d'entrée (signaux de logarithme inverse) sur les ports d'entrée 268a à h puis additionnent les signaux d'entrée de façon à générer une pluralité de signaux intermédiaires. Chaque circuit d'addition 260a à h peut générer un signal intermédiaire soit sur son port de sortie correspondant 272a à h soit sur le port bi-directionnel 270a à h, en fonction de la façon dont le circuit d'addition est configuré par l'unité de commande 234.
La pluralité de commutateurs 266b à h sert à réguler la transmission de signaux sur le bus 264. Chaque commutateur est situé sur le bus 264 entre le port d'entrée et le port bi-directionnel d'un circuit respectif des circuits d'addition. De plus, chacun des commutateurs 266b à h peut être placé de façon indépendante soit en position ouverte soit en position fermée. En position ouverte, un commutateur empêche les signaux de le traverser vers le reste du bus 264. En position fermée, un commutateur permet aux signaux de passer le long du bus 264.Par exemple, si un signal d'entrée est reçu sur le port d'entrée 268c du troisième circuit d'addition 260c alors que le premier commutateur 266b est fermé et le deuxième commutateur 266c est ouvert, le signal d'entrée est distribué par l'intermédiaire du bus 264 aux ports bi-directionnels 270a à b des premier et deuxième circuits d'addition 260a à b et aux ports d'entrée 268b à c des deuxième et troisième circuits d'addition 260 b à c. La position de chaque commutateur est déterminée par un signal de commande respectif émis par l'unité de commande 234 et distribuée par l'intermédiaire du bus de commande 258.
Dans un circuit intégré, chaque commutateur peut être mis en oeuvre en utilisant un transistor ballast MOS (métal oxyde semi-conducteur).
En plus de configurer chacun des commutateurs 266b à h, l'unité de commande 234 configure le port bidirectionnel 270a à h de chacun des circuits d'addition 260a à h de façon à recevoir ou à transmettre des données. Au moins un signal de commande permettant de réguler de façon indépendante le port bi-directionnel de chaque circuit d'addition est fourni par l'unité de commande 234 sur le bus de commande 258. Chaque circuit d'addition comporte un émetteur-récepteur qui réagit au signal de commande, permettant de fixer le sens du flux de données du port bi-directionnel. Les détails des circuits d'addition sont en outre décrits en référence aux figures 5 et 6 de l'invention apparentée identifiée ci-dessus nO 3.
En établissant plusieurs signaux de commande à différents instants, l'unité de commande 234 achemine les signaux intermédiaires devant être transmis en tant que signaux de sortie sur les ports de sortie 272a à h ou devant être reçus en tant qu'entrée par un autre circuit d'addition des circuits d'addition 260a à h par l'intermédiaire du bus 264. Par exemple, afin d'additionner les signaux intermédiaires générés par le premier circuit d'addition 260a et le troisième circuit d'addition 260c, l'unité de commande 234 émet d'abord un signal de commande qui ouvre les premier et quatrième commutateurs 266b,d et ferme le deuxième commutateur 266c. Ensuite, l'unité de commande 234 émet un autre signal de commande qui fait en sorte que les premier et troisième circuits d'addition 260a,c placent leurs signaux intermédiaires sur leurs ports bi-directionnels respectifs 270a,c. Le deuxième circuit d'addition reçoit ensuite la somme intermédiaire du premier circuit d'addition 260a sur son port d'entrée 268b et la somme intermédiaire du troisième circuit d'addition 260c sur son port bi-directionnel 270b.
Bien que le groupe d'additionneurs de la figure 7 soit représenté comme présentant une topologie qui comporte huit circuits d'addition 260a à h, l'homme du métier comprendra que le groupe d'additionneurs peut présenter un nombre quelconque de circuits d'addition, tout en respectant le concept et l'esprit de la présente invention.
Exemple opérationnel du groupe d'additionneurs de la figure 7
Deux exemples opérationnels vont être donnés pour le groupe d'additionneurs : (1) mode accumulation en parallèle et (2) mode accumulation en série. Bien que seuls deux modes de fonctionnement soient présentés ici, il en existe de nombreux autres possibles, par exemple celui de l'unité de commande 234 qui configure le groupe d'additionneurs de façon à additionner une combinaison quelconque de signaux d'entrée.
Deux exemples opérationnels vont être donnés pour le groupe d'additionneurs : (1) mode accumulation en parallèle et (2) mode accumulation en série. Bien que seuls deux modes de fonctionnement soient présentés ici, il en existe de nombreux autres possibles, par exemple celui de l'unité de commande 234 qui configure le groupe d'additionneurs de façon à additionner une combinaison quelconque de signaux d'entrée.
L'exemple d'accumulation parallèle montre l'accumulation de huit signaux d'entrée en une somme de sortie unique. Au cours de l'accumulation en parallèle, l'unité de commande 234 émet initialement un signal de commande qui provoque l'ouverture de tous les commutateurs 266b à h. Ensuite, des signaux d'entrée sont reçus, un sur chacun des ports d'entrée 268a à h. Au cours du premier cycle d'addition, l'unité de commande 234 émet un signal de commande qui fait en sorte qu'un circuit de commande sur deux génère une somme intermédiaire à partir des signaux d'entrée.En d'autres termes, le premier circuit d'addition 260a additionne les signaux d'entrée reçus sur la première paire de ports d'entrée 268a à b ; le troisième circuit d'addition 260c additionne les signaux d'entrée reçus sur la deuxième paire de ports d'entrée 268c à d ; le cinquième circuit d'addition 260e additionne les signaux d'entrée reçus sur la troisième paire de ports 268e à f ; et le septième circuit d'addition 260g additionne les signaux d'entrée reçus sur la quatrième paire d'entrée 268g à h.
Ensuite, au cours du deuxième cycle d'addition, les quatre sommes intermédiaires sont additionnées de façon à générer deux autres sommes intermédiaires. Les sommes intermédiaires provenant des premier et troisième circuits d'addition 260a,c sont additionnées par le deuxième circuit d'addition 260b de façon à générer une autre somme intermédiaire. Pour effectuer cela, l'unité de commande 234 émet un signal de commande qui ouvre les premier et troisième commutateurs 266b,d et ferme le deuxième commutateur 266c. L'unité de commande 234 fait ensuite en sorte que les premier et troisième circuits d'addition 260a,c transmettent leurs sommes intermédiaires sur leurs ports bi-directionnels respectifs 270a,c. A ce moment-là, l'unité de commande 234 émet également un signal de commande pour que le deuxième circuit d'addition reçoive des signaux sur son port bi-directionnel 270b.
Une procédure semblable à celle décrite ci-dessus pour le deuxième cycle d'addition est également effectuée pour additionner les sommes intermédiaires produites par les cinquième et septième circuits d'addition 260e,g.
Dans ce cas, l'unité de commande 234 ouvre le cinquième commutateur 266f et ferme le sixième commutateur 266g.
Les sommes intermédiaires provenant des cinquième et septième circuits d'addition 260e,g sont ensuite transmises à travers le bus 264 au port d'entrée 268f et le port bi-directionnel 270f, respectivement, du sixième circuit d'addition 260f. En conséquence, le sixième circuit d'addition 272f génère une autre somme intermédiaire.
Au cours du troisième cycle d'addition, les sommes intermédiaires générées par les deuxième et sixième circuits d'addition 260b,f sont additionnées de façon à produire une somme de sortie finale. L'unité de commande 234 émet un signal de commande qui ouvre le deuxième commutateur 266c et ferme les troisième, quatrième et cinquième commutateurs 266d à f. L'unité de commande 234 fait ensuite en sorte que les sommes intermédiaires des deuxième et sixième circuits d'addition 260b,f soient transférés à travers le bus 264 vers le port d'entrée 268c et le port bi-directionnel 270c, respectivement, du troisième circuit d'addition 260c. Le troisième circuit d'addition 272c additionne ces valeurs et donne le résultat sur son port de sortie 272c. La valeur du port de sortie 272c est la somme de sortie finale générée par le groupe d'additionneurs.
Lorsqu'un circuit d'addition est inactif, c'est-àdire qu'il n'est pas utilisé pendant un cycle d'addition, son port bi-directionnel est maintenu dans un état d'impédance élevée et, en outre, il ne répond pas aux signaux qui circulent le long du bus 264.
L'exemple de l'accumulation en série montre l'accumulation de huit séquences de signaux d'entrée en huit sommes de sortie séparées. Au cours de l'accumulation en série, l'unité de commande 234 émet initialement un signal de commande qui fait en sorte que tous les commutateurs 266b à h restent ouverts et que tous les ports bi-directionnels 270a à h se trouvent dans un état d'impédance élevée. Les séquences des signaux d'entrée sont reçues, une sur chacun des ports d'entrée 268a à h. Au cours du temps, chaque circuit d'addition additionne sa séquence d'entrée respective de façon à générer une somme de sortie sur son port de sortie correspondant 272 a à h. Ces sommes de sortie forment la sortie de l'accumulateur.
La figure 8 illustre un schéma fonctionnel détaillé d'un additionneur secondaire utilisé par l'accumulateur de la figure 6. L'additionneur secondaire 252 peut également fonctionner comme une pluralité d'accumulateurs en série ou une pluralité d'additionneurs à deux entrées.
L'additionneur secondaire 252 comprend une unité de commande 234, une pluralité de commutateurs 290a à b, un premier commutateur central 292, un deuxième commutateur central 294 et une pluralité de circuits d'addition 280a à d. Les circuits d'addition 280a à d sont disposés de façon adjacente dans un premier groupe symétrique 282 et un deuxième groupe symétrique 284. Chacun des groupes symétriques présente un circuit d'addition central respectif 280b à c.
D'un point de vue schématique, les groupes symétriques sont le reflet les uns des autres. Le premier groupe symétrique 282 comporte un premier circuit d'addition central 280b, tandis que le deuxième groupe symétrique 284 comporte un deuxième circuit d'addition central 280c. Les circuits d'addition centraux 280b à c se distinguent des autres car leurs ports bidirectionnels 288b à c sont connectés au premier commutateur central 292.
Chacun des circuits d'addition 280a à d présente un port d'entrée 286a à d et un port bi-directionnel 288a à d. De plus, chaque circuit d'addition présente un port de sortie 296a à d. Les circuits d'addition 280a à d reçoivent une pluralité de signaux d'entrée (signaux primaires) à la fois sur les ports d'entrée 286a à d et sur les ports bi-directionnels 288a à d puis ils additionnent les signaux d'entrée de façon à générer une pluralité de signaux intermédiaires. Chaque circuit d'addition 280a à d peut générer un signal intermédiaire soit sur son port de sortie correspondant 296a à d soit sur le port bi-directionnel 288a à d, selon la façon dont le circuit d'addition est configuré par l'unité de commande 234.
La pluralité de commutateurs 290a à b sert à réguler la transmission de signaux entre les circuits d'addition situés à l'intérieur du même groupe symétrique. Chaque commutateur de la pluralité de commutateurs 290a à b est connecté entre le port bidirectionnel et le port d'entrée de circuits d'addition adjacents situés à l'intérieur d'un groupe symétrique.
Le premier commutateur central 292 connecte les ports bi-directionnels 288b à c des circuits d'addition centraux 296b à c. Le premier commutateur central 292 permet aux signaux intermédiaires de passer entre les circuits d'addition centraux 280b à c.
Le deuxième commutateur central 294 peut être situé entre les ports bi-directionnels et de sortie du premier ou du deuxième circuit d'addition central. Dans l'exemple représenté, le deuxième commutateur central 294 est connecté entre le port bi-directionnel 288c et le port d'entrée 286c du deuxième circuit d'addition central 280c. L'objectif du deuxième commutateur central 294 est de permettre aux signaux intermédiaires produits sur le port bi-directionnel 288b du premier circuit d'addition central 280b d'atteindre le port d'entrée 286c du deuxième circuit d'addition central 280c.
Chacun des commutateurs peut être placé de façon indépendante soit en position ouverte soit en position fermée. En position ouverte, un commutateur empêche un signal de passer. En position fermée, un commutateur permet à un signal de passer. La position de chaque commutateur est déterminée par un signal de commande respectif émis par l'unité de commande 234 et distribué par l'intermédiaire du bus de commande 258. Dans un circuit intégré, chaque commutateur peut être mis en oeuvre en utilisant un transistor ballast MOS (métal oxyde semi-conducteur).
En plus de configurer chacun des commutateurs, l'unité de commande 234 configure le port bi-directionnel 288a à d de chacun des circuits d'addition 280a à d de façon à recevoir ou émettre des signaux. Au moins un signal de commande permettant de réguler de façon indépendante le port bi-directionnel de chaque circuit d'addition est fourni par l'unité de commande 234 par l'intermédiaire du bus de commande 258. Chaque circuit d'addition comporte un émetteur-récepteur, qui réagit au signal de commande, pour fixer le sens du flux de données du port bi-directionnel. On peut trouver les détails des circuits d'addition en faisant référence aux figures 5 et 6 de l'invention apparentée identifiée ci-dessus nO 3.
En émettant plusieurs signaux de commande à différents instants, l'unité de commande 234 achemine les signaux intermédiaires devant être transmis en tant que signaux de sortie sur les ports de sortie 296a à d ou vers d'autres circuits d'addition 280a à d. Par exemple, pour additionner des signaux intermédiaires générés par le premier circuit d'addition 280a et le premier circuit d'addition central 280b, l'unité de commande 234 émet d'abord un signal de commande qui ouvre le premier commutateur central 292 et ferme le commutateur 290a entre les deux circuits d'addition 280a à b. Ensuite, l'unité de commande 234 émet un autre signal de commande qui fait en sorte que le premier circuit d'addition 280a génère son signal intermédiaire sur son port bidirectionnel 288a.Le premier circuit d'addition central 280b reçoit ensuite la somme intermédiaire sur son port d'entrée 286b et l'additionne à sa propre somme intermédiaire. La somme obtenue générée par le premier circuit d'addition central 280b peut être sortie soit sur le port bi-directionnel 288b soit sur le port de sortie 296b.
Bien que l'additionneur secondaire 252 de la figure 8 soit représenté comme ayant une topologie qui comporte quatre circuits d'addition, l'homme du métier comprendra que l'additionneur secondaire 252 peut présenter un nombre quelconque de circuits d'addition, tout en conservant le concept et l'esprit de la présente invention.
La figure 9 illustre un processeur informatique selon un troisième mode de réalisation de la présente invention. En plus des éléments représentés sur la figure 5, le processeur informatique comporte de préférence un multiplexeur d'entrée (mux) 300 et un démultiplexeur de sortie (de-mux) 302. Le multiplexeur 300 est connecté à une pluralité de ports d'entrée. Un signal de sélection d'entrée provenant de l'unité de commande 234 choisit l'un des ports d'entrée sur lequel les signaux d'entrée sont reçus. Le démultiplexeur 302 transmet de façon sélective les signaux de sortie à l'un des ports de sortie d'une pluralité de ports de sortie. Un signal de sélection de sortie provenant de l'unité de commande 234 détermine quel est le port qui doit recevoir les signaux de sortie.En plus de transmettre les signaux de sortie, le démultiplexeur 302 peut également transmettre les adresses de sortie aux ports de sortie. Les signaux de sélection d'entrée et de sortie sont généralement générés par l'unité de commande 234 lorsqu'elle décode une instruction.
Les multiples ports entrée/sortie permettent au processeur informatique de recevoir et de traiter une pluralité de flux de données. Cela améliore considérablement la flexibilité du processeur informatique dans de nombreuses applications. Les flux de données présentant différents débits ou exigences de traitement peuvent être chevauchés par le processeur informatique, ce qui augmente le débit de données global du processeur. Par exemple, le processeur informatique peut recevoir trois flux de données différents, le premier flux exigeant un DFT, le deuxième un filtre RII et le troisième un polynôme non linéaire. Le processeur peut effectuer chaque opération par tranche de temps.
Pendant un premier intervalle, le processeur décode une instruction en choisissant la première voie et en configurant le processeur pour calculer un DFT ; pendant le deuxième intervalle, une autre instruction est décodée et sert à choisir la deuxième voie et une configuration de filtre RII ; et pendant le troisième intervalle, encore une autre instruction choisit le troisième flux et une configuration polynomiale non linéaire.
La figure 10 illustre un format d'instruction utilisé par le processeur informatique représenté sur la figure 9. Bien que l'homme du métier comprenne qu'une instruction informatique peut prendre différents formats et garder la même signification, le format d'instruction de la présente invention est de préférence un mot numérique de 19 bits qui comporte les champs suivants une identification de l'instruction, un mode entrée/sortie, une identification de la puce et un décalage. L'identification de l'instruction est une tranche de 5 bits qui indique l'identité de l'instruction. Ainsi, le format préféré permet au jeu d'instructions du processeur informatique de comprendre jusqu'à 32 instructions différentes. Tel que représenté sur la figure 10, l'identification d'instruction comporte les bits 14 à 18 d'une instruction. Le mode entrée/sortie est une tranche de 2 bits qui est décodée pour générer des signaux de commande qui configurent le multiplexeur d'entrée 300 et le démultiplexeur de sortie 302. Le mode entrée/sortie est situé au niveau des bits 12-13 d'une instruction. Les bits 7 à 11 d'une instruction donnent l'identification de la puce. Le processeur informatique a un numéro d'identification de 5 bits associé. Le processeur informatique ne décode que les instructions qui correspondent aux identifications de la puce. Le champ de l'identification de la puce permet à une instruction d'être distribuée à une pluralité de processeurs informatiques sur un bus commun, seuls les processeurs identifiés répondant à l'instruction. Les bits 0 à 6 d'une instruction donnent le décalage des instructions.Le décalage des instructions est décodé pour générer le signal de commande qui configure 1 'accumulateur 232.
La figure 11 illustre un processeur informatique selon un quatrième mode de réalisation de la présente invention. Ce mode de réalisation comporte une chaîne de rétroaction qui est utile au cours des opérations nécessitant une rétroaction, tels que les calculs de normes L1 et L2 ou le filtrage RII. Le processeur illustré à la figure 11 comporte le convertisseur de logarithme d'entrée 20, la pluralité d'éléments de traitement 26a à f, le convertisseur de logarithme inverse 29 et l'accumulateur 29 représentés sur la figure 1. En plus de ces éléments, le processeur de la figure 11 comporte un convertisseur de logarithme de rétroaction 303, un premier pipeline de données 304 présentant une première pluralité d'étages 305a à c et un deuxième pipeline de données présentant une deuxième pluralité d'étages 307a à c.
Le convertisseur de logarithme de rétroaction 303 effectue une conversion logarithmique des signaux de sortie afin de générer une pluralité correspondante de signaux de rétroaction. Ces signaux de rétroaction sont fournis au premier étage 305a du premier pipeline de données 304. Le convertisseur de logarithme de rétroaction 303 peut comporter un moyen quelconque permettant d'effectuer une conversion logarithmique toutefois, il comporte de préférence le convertisseur de logarithme décrit dans le présent document en référence à la figure 2. Les signaux de sortie peuvent être convertis de façon sélective en des signaux de rétroaction. Cela peut être accompli de l'une de ces deux façons : soit l'accumulateur 29 fournit les signaux de sortie sélectionnés soit le convertisseur de logarithme de rétroaction 303 choisit les signaux de sortie selon leurs adresses de sortie associées.
Le premier pipeline de données 304 fournit de façon séquentielle les signaux de rétroaction au premier ensemble d'éléments de traitement 26a à c, tandis que le deuxième pipeline de données 306 fournit de façon séquentielle les signaux de logarithme à un deuxième ensemble d'éléments de traitement 26d à f. Les premier et deuxième pipelines de données 304, 306 fonctionnent sensiblement de la même façon que le pipeline de données 22 représenté sur les figures 1, 5 et 9.
La figure 12 illustre un processeur informatique selon un cinquième mode de réalisation de la présente invention. Le processeur illustré à la figure 12 comporte le convertisseur de logarithme d'entrée 20, la pluralité d'éléments de traitement 231a à f, le convertisseur de logarithme inverse 28, le convertisseur de logarithme de rétroaction 303, le premier pipeline de données 304, le deuxième pipeline de données 306, le bus 230 et l'accumulateur 232 tel que décrit précédemment dans le présent document. En plus de ces éléments, le processeur de la figure 12 comprend une unité de commande 235, un premier mux (multiplexeur) 308 et un deuxième multiplexeur 309. Les multiplexeurs supplémentaires permettent au processeur de fonctionner avec un pipeline double ou un pipeline unique.
En plus de la fonctionnalité et des caractéristiques de l'unité de commande 234 représentée sur les figures 5 et 9, l'unité de commande 235 de la figure 12 génère des signaux de commande qui configurent le premier multiplexeur 308 et le deuxième multiplexeur 309. Ces signaux de commande sont générés en réponse à une instruction décodée par l'unité de commande 234.
Le premier multiplexeur 308 fournit de façon sélective soit les signaux de logarithme soit les signaux de rétroaction en tant que premières sorties du multiplexeur. A leur tour, les premières sorties du multiplexeur sont fournies au premier étage 305a. Le deuxième multiplexeur 309 fournit de façon sélective soit les premières sorties de pipeline, à partir du énième étage 305c, soit les signaux de logarithme en que deuxièmes sorties du multiplexeurs. Les deuxièmes sorties du multiplexeur sont fournies au premier étage 307a du deuxième pipeline de données 306.
La figure 13 illustre un processeur informatique selon un sixième mode de réalisation de la présente invention. Le processeur représenté sur la figure 13 comporte le multiplexeur d'entrée 300, la pluralité d'éléments de traitement 231a à f, le convertisseur de logarithme inverse 28, le premier pipeline de données 304, le deuxième pipeline de données 306, le bus 230, l'accumulateur 232, le premier multiplexeur 308, le deuxième multiplexeur 309 et le démultiplexeur de sortie 302, tel que décrit précédemment dans le présent document. En plus de ces éléments, le processeur informatique de la figure 13 comporte une unité de commande 237, une mémoire 311, un convertisseur de logarithme d'entrée amélioré 314 et un convertisseur de logarithme de rétroaction amélioré 315.
En plus de la fonctionnalité et des caractéristiques de l'unité de commande 235 représentée sur la figure 12, l'unité de commande 237 génère des signaux de commande qui configurent le multiplexeur d'entrée 300 et le démultiplexeur de sortie 302 de façon à sélectionner plusieurs flux de données.
Dans un mode de réalisation préféré de la présente invention, le convertisseur de logarithme d'entrée 314 et le convertisseur de logarithme de rétroaction 315 partagent une pluralité de paramètres mémorisés dans la mémoire 311. Cela réduit l'espace de silicium global requis par le processeur informatique. Les paramètres comportent un paramètre de deuxième ordre, de premier ordre et d'ordre zéro.
La mémoire 311 comporte essentiellement le contenu de la mémoire 41 de la figure 2. La mémoire 311 peut être mise en oeuvre en utilisant une mémoire à port double qui permet aux deux convertisseurs de logarithme d'avoir accès aux paramètres. Chaque port est consacré à l'un des convertisseurs de logarithme 314, 315.
Le convertisseur de logarithme d'entrée 314 peut comporter un générateur de signaux, tel que le générateur de signaux 43 représenté sur la figure 2. Le convertisseur de logarithme d'entrée 314 reçoit des paramètres du port respectif de la mémoire 311 et des signaux d'entrée afin de générer les signaux de logarithme. De la même façon, le convertisseur de logarithme de rétroaction 315 peut également comporter un générateur de signaux, tel que le générateur de signaux 43. Le convertisseur de logarithme de rétroaction 315 génère des signaux de rétroaction en réponse aux paramètres provenant de la mémoire 311 et des signaux de sortie.
Dans un mode de réalisation de la présente invention, le processeur informatique est mis en oeuvre avec une micropuce personnalisée. Toutefois, l'homme du métier reconnaîtra qu'une matrice logique programmable, un circuit intégré spécifique (ASIC) ou un autre dispositif logique numérique, ainsi qu'un logiciel tournant sur un processeur tel qu'un microprocesseur pourraient également être utilisés pour mettre en oeuvre le processeur informatique.
Dans un mode de réalisation de la présente invention, le processeur informatique peut calculer une développement polynomial représenté par l'équation 3 qui suit
x,g,, Equation 3
Dans l'équation 3, xi représente les signaux d'entrée et peut être une fonction telle que xi = fi (zj), où zj est un signal qui est prétraité par une fonction fi, et où les indices i et j peuvent être des entiers quelconques ; y représente un signal de sortie du processeur informatique ; w représente une valeur de coefficient ; gl, ... gn représentent les valeurs d'exposant du ième terme ; et n représente le nombre de signaux d'entrée.
x,g,, Equation 3
Dans l'équation 3, xi représente les signaux d'entrée et peut être une fonction telle que xi = fi (zj), où zj est un signal qui est prétraité par une fonction fi, et où les indices i et j peuvent être des entiers quelconques ; y représente un signal de sortie du processeur informatique ; w représente une valeur de coefficient ; gl, ... gn représentent les valeurs d'exposant du ième terme ; et n représente le nombre de signaux d'entrée.
La figure 14 représente un organigramme d'un procédé d'utilisation de l'un des processeurs informatiques représentés sur les figures l, 5 et 9 pour générer au moins un signal de sortie. A la case 320, une instruction est décodée pour configurer les éléments du processeur. Une telle configuration comporte le choix d'une opération d'addition. A la case 322, une conversion logarithmique est effectuée sur une pluralité de signaux d'entrée de façon à générer une pluralité correspondante de signaux de logarithme. Ensuite, à la case 324, chaque signal de logarithme est transmis par l'intermédiaire d'un pipeline de données. Le pipeline présente de façon séquentielle les signaux de logarithme à chaque étage d'une pluralité d'étages. A la case 326, un signal de terme est généré pour chaque étage en réponse à chaque signal de logarithme.Ainsi, une pluralité de signaux de terme est générée. Chaque signal de terme est fondé sur l'équation 1 ou sur l'équation 2, tel que décrit dans le présent document.
A la case 328, la conversion logarithmique inverse est effectuée sur les signaux de terme de façon à générer une pluralité de signaux de logarithme inverse. Ensuite, à la case 330, les signaux de logarithme inverse sont additionnés de façon à produire un ou plusieurs signaux de sortie. Les signaux de logarithme inverse peuvent être additionnés de façon sélective. Par exemple, les signaux de logarithme inverse associés à un ensemble prédéterminé d'étages peuvent être additionnés pour donner un signal de sortie unique. Ou, selon un autre exemple, chaque signal de sortie peut représenter une addition des signaux de logarithme inverse associés à un étage prédéterminé unique. A la case 232, une adresse de sortie est générée de façon concomitante avec chaque signal de sortie.
La figure 15 représente un organigramme d'un procédé d'utilisation de l'un des processeurs informatiques représentés sur les figures 11 à 13 pour générer des signaux de sortie. Les étapes 320 à 332 correspondent directement aux étapes 320 à 332 décrites conjointement avec la figure 14. En plus de ces étapes, à la case 333, la conversion logarithmique est effectuée sur les signaux de sortie de façon à générer la pluralité de signaux de rétroaction. A la case 334, chaque signal de rétroaction est transmis par l'intermédiaire du premier pipeline de données. Le premier pipeline de données présente de façon séquentielle les signaux de rétroaction à chaque étage de la première pluralité d'étages. A la case 335, les signaux de logarithme sont transmis par l'intermédiaire du deuxième pipeline de données présentant une deuxième pluralité d'étages.Le deuxième pipeline de données présente de façon séquentielle les signaux de logarithme à chacun des étages d'une deuxième pluralité d'étages.
La figure 16 représente un schéma fonctionnel d'un système informatique numérique qui incorpore un processeur informatique du mode de réalisation de la présente invention. L'ordinateur numérique comporte un coprocesseur 340, un microprocesseur 342, une mémoire d'ordinateur 344, un dispositif de commande entrée/sortie 346, un bus 348, un dispositif de commande de bus 350 et une pluralité de dispositifs entrée/sortie 356.
L'ordinateur numérique peut être utilisé à des fins très variées, par exemple pour le traitement vidéo, la simulation de conception et de fabrication assistée par ordinateur, la réalité virtuelle, des graphiques informatiques et la reconnaissance des formes en général, y compris la reconnaissance vocale et de l'écriture à la main.
La mémoire informatique 344 peut être un moyen quelconque permettant de mémoriser un programme d'application 352, et un programme du système d'exploitation 354. La mémoire de l'ordinateur 344 peut être mise en oeuvre en utilisant une combinaison quelconque de ROM, RAM ou de mémoire de grande capacité telles que des unités de disque. Le programme d'application 352 est un programme de logiciel et comporte un jeu d'instructions pouvant être exécuté soit par le coprocesseur 340 soit par le microprocesseur 342.
Le système d'exploitation 354 comporte au moins un sousprogramme de logiciel permettant de commander le transfert des données par l'intermédiaire du bus 348. En général, le dispositif de commande de bus 350 interagit avec au moins un sous-programme de logiciel pour permettre un accès aux différents dispositifs connectés au bus 348.
Généralement, le microprocesseur exécute des instructions à partir de l'application 352 et le système d'exploitation 254 qu'il reçoit par l'intermédiaire du bus 248. En réponse à l'exécution de ces instructions, le coprocesseur 340 génère une pluralité de signaux de sortie. Le coprocesseur 340 peut recevoir des instructions du microprocesseur ou directement de la mémoire de l'ordinateur 344. Le coprocesseur 340 peut comporter n'importe lequel des modes de réalisation préférés du processeur informatique décrit dans le présent document.
Le dispositif de commande d'entrée/sortie 346 permet aux données de passer entre la pluralité de dispositifs d'entrée/sortie 356 et d'autres dispositifs connectés au bus 348. En général, le dispositif de commande entrée/sortie réagit aux sous-programmes de transfert de données du système d'exploitation 354. Les dispositifs d'entrée/sortie 356 fournissent des interfaces externes au système informatique numérique.
Les dispositifs d'entrée/sortie 356 peuvent comporter un terminal de visualisation à écran cathodique, un clavier, une souris, une manette de jeu, une mémoire de grande capacité telle qu'une unité de disque ou un lecteur de cartouche, un traceur, une imprimante, un magnétoscope ou un poste de télévision.
En résumé, on a décrit dans le présent document un concept, ainsi que de nombreux modes de réalisation, y compris un mode de réalisation préféré, d'un processeur informatique qui effectue des conversions logarithmiques sur des signaux d'entrée avant d'effectuer des opérations arithmétiques sur les signaux d'entrée, permettant ainsi au processeur d'effectuer des opérations mathématiques à des vitesses considérablement plus élevées tout en réduisant la taille et la complexité du processeur dans un circuit intégré. En fonctionnant dans un système de nombres logarithmiques, les éléments de traitement peuvent être mis en oeuvre en utilisant un espace de silicium considérablement réduit.
Puisque les différents modes de réalisation de la présente invention proposent un processeur informatique qui comporte des ports d'entrée et de sortie multiples, ils effectuent des calculs à des débits de données considérablement accrus.
Bien que les modes de réalisation spécifiques de la présente invention aient été représentés et décrits, l'homme du métier comprendra que l'invention décrite peut être modifiée de plusieurs façons et peut utiliser de nombreux modes de réalisation différents de la forme préférée spécifiquement établie et décrite ci-dessus. Par exemple, un mode de réalisation du processeur informatique tel que décrit dans le présent document peut présenter un nombre quelconque d'étages ou d'éléments de traitement, tout en respectant la portée de la présente invention.
Par conséquent, l'objectif des revendications jointes est de donner un aperçu de toutes les modifications de la présente invention qui restent dans le véritable esprit et dans la portée de la présente invention.
Claims (10)
1. Procédé permettant d'utiliser un processeur informatique pour générer un signal de sortie, le procédé comprenant les étapes consistant à
effectuer une conversion logarithmique d'une pluralité de signaux d'entrée de façon à générer une pluralité correspondante de signaux de logarithme
transmettre chaque signal de logarithme de la pluralité de signaux de logarithme par l'intermédiaire d'un pipeline de données présentant une pluralité d'étages ;
générer un signal de terme pour chaque étage en réponse à chaque signal de logarithme de la pluralité de signaux de logarithme, générant ainsi une pluralité de signaux de terme ;
effectuer une conversion logarithmique inverse de la pluralité de signaux de terme de façon à générer une pluralité de signaux de logarithme inverse ; et
additionner la pluralité de signaux de logarithme inverse de façon à produire le signal de sortie.
2. Processeur informatique qui comprend
un convertisseur de logarithme permettant d'effectuer une conversion logarithmique d'une pluralité de signaux d'entrée de façon à générer une pluralité de signaux de logarithme ;
un pipeline de données présentant une pluralité d'étages, permettant de fournir de façon séquentielle la pluralité de signaux de logarithme à chaque étage de la pluralité d'étages
une pluralité d'éléments de traitement permettant de générer une pluralité de signaux de terme, chaque élément de traitement de la pluralité d'éléments de traitement étant couplé de façon à fonctionner à un étage respectif et générant un signal de terme en réponse à chaque signal de logarithme de la pluralité de signaux de logarithme ;;
un convertisseur de logarithme inverse permettant d'effectuer une conversion logarithmique inverse des signaux de terme de façon à générer une pluralité de signaux de logarithme inverse ; et
un accumulateur permettant d'additionner la pluralité de signaux de logarithme inverse de façon à produire un signal de sortie.
3. Processeur informatique selon la revendication 2, comprenant en outre
une unité de commande, couplée de façon à fonctionner à l'accumulateur, permettant de configurer l'accumulateur de façon à effectuer une opération d addition.
4. Processeur informatique selon la revendication 2, dans lequel chaque signal de terme de la pluralité de signaux de terme est fondé sur une équation
y = w +
où y représente un signal de terme de la pluralité de signaux de terme, w représente une valeur de coefficient et x représente un signal de logarithme de la pluralité de signaux de logarithme.
5. Processeur informatique selon la revendication 2, dans lequel chaque signal de terme de la pluralité de signaux de terme est fondé sur une équation
n y = W +
i=m
où y représente un signal de terme de la pluralité de signaux de terme, w représente une valeur de coefficient, gi représente une valeur d'exposant, xi représente un signal de logarithme de la pluralité de signaux de logarithme, m et n sont des entiers et i est un entier compris entre m et n.
6. Processeur informatique qui comprend
un convertisseur de logarithme permettant d'effectuer une conversion logarithmique d'une pluralité de signaux d'entrée de façon à générer une pluralité de signaux de logarithme ;
un pipeline de données présentant une pluralité d'étages, permettant de fournir de façon séquentielle les signaux de logarithme à chaque étage de la pluralité d'étages ;
une pluralité d'éléments de traitement permettant de générer une pluralité de signaux de terme, chaque élément de traitement de la pluralité d'éléments de traitement étant couplé de façon à fonctionner à un étage respectif et générant un signal de terme en réponse à chaque signal de logarithme de la pluralité de signaux de logarithme ;
un bus permettant de distribuer la pluralité de signaux de logarithme à la pluralité d'éléments de traitement ;;
un convertisseur de logarithme inverse permettant d'effectuer une conversion logarithmique inverse des signaux de terme de façon à générer une pluralité de signaux de logarithme inverse ; et
un accumulateur permettant d'additionner la pluralité de signaux de logarithme inverse de façon à produire un signal de sortie.
7. Processeur informatique selon la revendication 6, comprenant en outre
une unité de commande, couplée de façon à fonctionner à l'accumulateur, permettant de configurer l'accumulateur de façon à effectuer une opération d'addition.
8. Processeur informatique selon la revendication 6, comprenant en outre
une unité de commande permettant de configurer de façon sélective chaque élément de traitement de la pluralité d'éléments de traitement de façon à répondre soit à l'étage respectif soit au bus.
9. Processeur informatique selon la revendication 6, dans lequel chaque signal de terme de la pluralité de signaux de terme est fondé sur une équation
y = w +
où y représente un signal de terme de la pluralité de signaux de terme, w représente une valeur de coefficient et x représente un signal de logarithme de la pluralité de signaux de logarithme.
10. Processeur informatique selon la revendication 6, dans lequel chaque signal de terme de la pluralité de signaux de terme est fondé sur une équation
n
y = w + i=m
où y représente un signal de terme de la pluralité de signaux de terme, w représente une valeur de coefficient, gi représente une valeur d'exposant, xi représente un signal de logarithme de la pluralité de signaux de logarithme, m et n sont des entiers et i est un entier compris entre m et n.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/520,666 US5771391A (en) | 1995-08-28 | 1995-08-28 | Computer processor having a pipelined architecture and method of using same |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR2738366A1 true FR2738366A1 (fr) | 1997-03-07 |
Family
ID=24073578
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR9610367A Pending FR2738366A1 (fr) | 1995-08-28 | 1996-08-22 | Processeur informatique presentant une architecture pipeline et procede d'utilisation de celui-ci |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5771391A (fr) |
| AU (1) | AU6685096A (fr) |
| FR (1) | FR2738366A1 (fr) |
| IL (1) | IL119015A0 (fr) |
| IT (1) | IT1284262B1 (fr) |
| WO (1) | WO1997008609A1 (fr) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100291383B1 (ko) * | 1996-11-18 | 2001-09-17 | 윤종용 | 디지털신호처리를위한명령을지원하는모듈계산장치및방법 |
| US5961631A (en) * | 1997-07-16 | 1999-10-05 | Arm Limited | Data processing apparatus and method for pre-fetching an instruction in to an instruction cache |
| US6032168A (en) * | 1997-08-15 | 2000-02-29 | Motorola, Inc. | Computer system to perform a filter operation using a logarithm and inverse-logarithm converter and methods thereof |
| US6003058A (en) * | 1997-09-05 | 1999-12-14 | Motorola, Inc. | Apparatus and methods for performing arithimetic operations on vectors and/or matrices |
| US6418478B1 (en) * | 1997-10-30 | 2002-07-09 | Commvault Systems, Inc. | Pipelined high speed data transfer mechanism |
| US6883012B1 (en) * | 2001-03-19 | 2005-04-19 | Cisco Systems Wireless Networking (Australia) Pty Limited | Linear-to-log converter for power estimation in a wireless data network receiver |
| US6901422B1 (en) | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
| US8370542B2 (en) | 2002-09-16 | 2013-02-05 | Commvault Systems, Inc. | Combined stream auxiliary copy system and method |
| WO2005065084A2 (fr) | 2003-11-13 | 2005-07-21 | Commvault Systems, Inc. | Systeme et procede pour effectuer le chiffrage lors des operations de stockage en pipeline dans un reseau de stockage |
| US7606850B2 (en) * | 2005-03-30 | 2009-10-20 | Lockheed Martin Corporation | Method and apparatus for providing a base-2 logarithm approximation to a binary number |
| WO2014105154A1 (fr) * | 2012-12-24 | 2014-07-03 | Intel Corporation | Systèmes, procédés et produits programmes d'ordinateur pour effectuer des opérations mathématiques |
| US9904481B2 (en) | 2015-01-23 | 2018-02-27 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a storage management system using media agent resources |
| US9898213B2 (en) | 2015-01-23 | 2018-02-20 | Commvault Systems, Inc. | Scalable auxiliary copy processing using media agent resources |
| US11010261B2 (en) | 2017-03-31 | 2021-05-18 | Commvault Systems, Inc. | Dynamically allocating streams during restoration of data |
| US11693625B2 (en) * | 2019-12-04 | 2023-07-04 | Flex Logix Technologies, Inc. | Logarithmic addition-accumulator circuitry, processing pipeline including same, and methods of operation |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4555768A (en) * | 1983-06-07 | 1985-11-26 | Rca Corporation | Digital signal processing system employing logarithms to multiply and divide |
| US4700319A (en) * | 1985-06-06 | 1987-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Arithmetic pipeline for image processing |
| US5109524A (en) * | 1985-07-02 | 1992-04-28 | Vlsi Technology, Inc. | Digital processor with a four part data register for storing data before and after data conversion and data calculations |
| US5337266A (en) * | 1987-12-21 | 1994-08-09 | Arnold Mark G | Method and apparatus for fast logarithmic addition and subtraction |
| US5343254A (en) * | 1991-04-25 | 1994-08-30 | Olympus Optical Co., Ltd. | Image signal processing device capable of suppressing nonuniformity of illumination |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3551663A (en) * | 1965-04-15 | 1970-12-29 | Gen Electric | Multiplication apparatus in a data processing system with a variable length multiplier |
| US3748451A (en) * | 1970-08-21 | 1973-07-24 | Control Data Corp | General purpose matrix processor with convolution capabilities |
| FR2212952A5 (fr) * | 1972-12-29 | 1974-07-26 | Cit Alcatel | |
| US3967100A (en) * | 1973-11-12 | 1976-06-29 | Naonobu Shimomura | Digital function generator utilizing cascade accumulation |
| US3922536A (en) * | 1974-05-31 | 1975-11-25 | Rca Corp | Multionomial processor system |
| PL106470B1 (pl) * | 1977-02-01 | 1979-12-31 | Inst Maszyn Matematycznych | Uklad cyfrowy do obliczania wartosci zlozonych wyrazen arytmetycznych |
| DE3506749A1 (de) * | 1984-02-27 | 1985-09-26 | Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo | Matrixprozessor und steuerverfahren hierfuer |
| US4626825A (en) * | 1985-07-02 | 1986-12-02 | Vlsi Technology, Inc. | Logarithmic conversion apparatus |
| EP0218971A3 (fr) * | 1985-09-30 | 1990-04-11 | Siemens Aktiengesellschaft | Procédé pour résoudre les équations du type z = ((x1**y1) op (x2**y2) op ... op (xn**ym))**(1/k) |
| GB8611124D0 (en) * | 1986-05-07 | 1986-06-11 | Gec Avionics | Accumulating recursive computation |
| EP0314809B1 (fr) * | 1987-05-14 | 1993-07-21 | Fujitsu Limited | Processeur vectoriel pour le traitement a haute vitesse d'equations recurrentes |
| FI894021A7 (fi) * | 1988-08-31 | 1990-03-01 | Fujitsu Ltd | Neuronstruktur. |
| US5073867A (en) * | 1989-06-12 | 1991-12-17 | Westinghouse Electric Corp. | Digital neural network processing elements |
| US5359551A (en) * | 1989-06-14 | 1994-10-25 | Log Point Technologies, Inc. | High speed logarithmic function generating apparatus |
| US5042001A (en) * | 1989-10-02 | 1991-08-20 | Cyrix Corporation | Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier |
| US5068816A (en) * | 1990-02-16 | 1991-11-26 | Noetzel Andrew S | Interplating memory function evaluation |
| US5331582A (en) * | 1991-12-16 | 1994-07-19 | Pioneer Electronic Corporation | Digital signal processor using a coefficient value corrected according to the shift of input data |
| US5365465A (en) * | 1991-12-26 | 1994-11-15 | Texas Instruments Incorporated | Floating point to logarithm converter |
| US5278945A (en) * | 1992-01-10 | 1994-01-11 | American Neuralogical, Inc. | Neural processor apparatus |
| WO1993017383A1 (fr) * | 1992-02-29 | 1993-09-02 | Hoefflinger Bernd | Agencement d'un circuit pour la multiplication numerique de nombres entiers |
| US5553102A (en) * | 1994-12-01 | 1996-09-03 | Motorola, Inc. | Diversity reception communication system with maximum ratio combining method |
-
1995
- 1995-08-28 US US08/520,666 patent/US5771391A/en not_active Expired - Fee Related
-
1996
- 1996-07-31 WO PCT/US1996/012515 patent/WO1997008609A1/fr not_active Ceased
- 1996-07-31 AU AU66850/96A patent/AU6685096A/en not_active Abandoned
- 1996-08-06 IL IL11901596A patent/IL119015A0/xx unknown
- 1996-08-22 FR FR9610367A patent/FR2738366A1/fr active Pending
- 1996-08-26 IT IT96RM000592A patent/IT1284262B1/it active IP Right Grant
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4555768A (en) * | 1983-06-07 | 1985-11-26 | Rca Corporation | Digital signal processing system employing logarithms to multiply and divide |
| US4700319A (en) * | 1985-06-06 | 1987-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Arithmetic pipeline for image processing |
| US5109524A (en) * | 1985-07-02 | 1992-04-28 | Vlsi Technology, Inc. | Digital processor with a four part data register for storing data before and after data conversion and data calculations |
| US5337266A (en) * | 1987-12-21 | 1994-08-09 | Arnold Mark G | Method and apparatus for fast logarithmic addition and subtraction |
| US5343254A (en) * | 1991-04-25 | 1994-08-30 | Olympus Optical Co., Ltd. | Image signal processing device capable of suppressing nonuniformity of illumination |
Non-Patent Citations (2)
| Title |
|---|
| SWARTZLANDER E E ET AL: "SIGN/LOGARITHM ARITHMETIC FOR FFT IMPLEMENTATION", IEEE TRANSACTIONS ON COMPUTERS, vol. C-32, no. 6, June 1983 (1983-06-01), pages 526 - 534, XP000648538 * |
| YU L K ET AL: "A 30-B INTEGRATED LOGARITHMIC NUMBER SYSTEM PROCESSOR", IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 26, no. 10, 1 October 1991 (1991-10-01), pages 1433 - 1440, XP000264308 * |
Also Published As
| Publication number | Publication date |
|---|---|
| IL119015A0 (en) | 1996-11-14 |
| IT1284262B1 (it) | 1998-05-14 |
| ITRM960592A1 (it) | 1998-02-26 |
| AU6685096A (en) | 1997-03-19 |
| US5771391A (en) | 1998-06-23 |
| WO1997008609A1 (fr) | 1997-03-06 |
| ITRM960592A0 (fr) | 1996-08-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2738366A1 (fr) | Processeur informatique presentant une architecture pipeline et procede d'utilisation de celui-ci | |
| EP0712072B1 (fr) | Procédé de mise en oeuvre de réduction modulaire selon la méthode de Montgomery | |
| EP1805611A1 (fr) | Procede d'ordonnancement de traitement de tâches et dispositif pour mettre en oeuvre le procede | |
| EP0712071A1 (fr) | Procédé de mise en oeuvre de multiplication modulaire selon la méthode de montgomery | |
| US5721696A (en) | Method and system for performing an FIR filtering operation | |
| FR2585859A1 (fr) | Unite de commande d'operations de masques vectoriels. | |
| EP0692762B1 (fr) | Circuit logique de multiplication parallèle | |
| US8239442B2 (en) | Computing module for efficient FFT and FIR hardware accelerator | |
| EP2319177B1 (fr) | Dispositif de filtrage a stucture hierarchique et dispositif de filtrage reconfigurable | |
| US5657263A (en) | Computer processor having a pipelined architecture which utilizes feedback and method of using same | |
| EP0437876B1 (fr) | Multiplieur série programmable | |
| FR2849512A1 (fr) | Multiplieur modulaire de montgomery et procede de multiplication correspondant | |
| FR2724741A1 (fr) | Circuit electronique de calcul modulaire dans un corps fini | |
| FR2678400A1 (fr) | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. | |
| FR3101980A1 (fr) | Processeur | |
| FR3083885A1 (fr) | Circuit de generation de facteurs de rotation pour processeur ntt | |
| FR2656442A1 (fr) | Processeur a plusieurs unites microprogrammees avec mecanisme d'execution anticipee des instructions. | |
| FR2731813A1 (fr) | Processeur informatique utilisant la conversion logarithmique et son procede d'utilisation | |
| KR20080050226A (ko) | 모듈러 곱셈 장치 및 설계 방법 | |
| EP0778518B1 (fr) | Procédé de production d'un paramètre J0 associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery | |
| US12147783B2 (en) | Pipelined hardware to accelerate modular arithmetic operations | |
| WO1997008611A1 (fr) | Procede et systeme destines a l'execution d'une operation de filtrage a reponse impulsionnelle infinie | |
| FR2809835A1 (fr) | Systeme et procede d'arrondissement base sur une selection pour des operations a virgule flottante | |
| US20040225809A1 (en) | Integrated circuit arrangement for multiple-sensor types with a programmable interface for selecting a digital filter input signal | |
| FR2475763A1 (fr) | Processeur numerique a structure pipeline |