FR2731813A1 - Processeur informatique utilisant la conversion logarithmique et son procede d'utilisation - Google Patents

Processeur informatique utilisant la conversion logarithmique et son procede d'utilisation Download PDF

Info

Publication number
FR2731813A1
FR2731813A1 FR9601725A FR9601725A FR2731813A1 FR 2731813 A1 FR2731813 A1 FR 2731813A1 FR 9601725 A FR9601725 A FR 9601725A FR 9601725 A FR9601725 A FR 9601725A FR 2731813 A1 FR2731813 A1 FR 2731813A1
Authority
FR
France
Prior art keywords
values
processing elements
accumulator
output
logarithmic
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
Application number
FR9601725A
Other languages
English (en)
Inventor
Shaowei Pan
Shay Ping Thomas Wang
Scott Edward Lloyd
Nicholas Mikulas Labun
David Alan Hayner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US08/403,158 external-priority patent/US5685008A/en
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of FR2731813A1 publication Critical patent/FR2731813A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0307Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/5235Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)

Abstract

Un processeur informatique destiné à effectuer des opérations mathématiques comporte un convertisseur de logarithme (12) qui génère des valeurs logarithmiques sur un bus de données, une pluralité d'éléments de traitement connectée au bus de données, un convertisseur de logarithme inverse (28) qui reçoit des valeurs des éléments de traitement (16), un accumulateur (32) qui additionne les valeurs converties par le convertisseur de logarithme inverse (28) et une unité de commande (38) pour configurer l'accumulateur afin qu'il effectue plusieurs opérations d'addition. Le processeur informatique comporte également un commutateur (36) pour fournir des sorties de processeur en tant que rétroaction. Une instruction, choisie dans un jeu d'instructions, est décodée par l'unité de commande (38) pour configurer le processeur informatique afin qu'il effectue des opérations sur un flux de données.

Description

Titre
Processeur informatique utilisant la conversion logarithmique et son procédé d'utilisation.
Inventions apparentées
La présente invention concerne les inventions suivantes, cédées au cessionnaire de la présente invention
(1) "Neural Network Utilizing a Logarithmic
Function and Method of Using Same" (Réseau neuronal utilisant une fonction logarithmique et son procédé d'utilisation) dont le numéro de série est 08/176 601, enregistré le 3 janvier 1994.
(2) "Exponentiator Circuit Utilizing Shift
Register and Method Of Using Same" (Circuit d'élévation à une puissance utilisant un registre à décalage et son procédé d'utilisation), dont le numéro de série est 08/401 515, enregistré le 10 mars 1995.
(3) "Accumulator Circuit and Method of Use
Thereof" (Circuit accumulateur et son procédé d'utilisation), dont le numéro de série est 08/455 927, enregistré le 31 mai 1995.
(4) "Logarithm/Inverse-Logarithm Converter and
Method Of Using Same" (Convertisseur logarithme/ logarithme inverse et son procédé d'utilisation), dont le numéro de série est 08/381 368, enregistré le 31 janvier 1995.
(5) ZLogarithm/Inverse-Logarithm Converter Utili zing Second-Order Term and method of Using Sainte N (Convertisseur logarithme/logarithme inverse utilisant un terme de deuxième ordre et son procédé d'utilisation), dont le numéro de série est 08/382 467, enregistré le 31 janvier 1995.
La valeur des inventions apparentées susmentionnées est incorporée en tant que référence dans la description de cette invention.
Domaine de l'invention
La présente invention concerne généralement des ordinateurs et, en particulier, un processeur informatique ayant de multiples éléments de traitement.
Arrière-plan de le invention
Les processeurs informatiques sont bien connus et largement utilisés à des fins variées. Une application de processeurs informatiques est le traitement de signaux numériques (TSN). Par définition, le traitement de signaux numériques concerne la représentation de signaux par des séquences de nombres ou symboles et le traitement de ces signaux. Le TSN a un champ d'application très varié et son importance est évidente dans des domaines tels que ceux de la reconnaissance des formes, des radiocommunications, des télécommunications, des radars, de l'ingénierie médicale et de beaucoup d'autres.
Au coeur de chaque système TSN se trouve un processeur informatique qui effectue des opérations mathématiques sur des signaux. Généralement, les signaux reçus par un système TSN 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 d'un certain côté plus souhaitable. De telles opérations mettent généralement en oeuvre des calculs compliqués et entrainent un traitement numérique intensif.Des exemples d'opérations mathématiques pouvant être effectuées dans des systèmes TSN comportent la multiplication de matrices, l'inversion de matrices, des transformations de Fourier rapides (TFR), des autocorrélation et corrélation croisée, des transformations de cosinus discrets (TCD), des équations de polynômes et des équations différentielles en général, comme celles utilisées pour approcher par approximation des filtres de réponse infinie à une impulsion (IIR) et de réponse finie à une impulsion (FIR).
Les processeurs informatiques diffèrent considérablement, tant par leur conception que par leur fonction. Un aspect d'une conception de processeur est son architecture. Généralement, le terme d'architecture d'ordinateur se réfère au jeu d'instructions et à l'organisation d'un processeur. Un jeu d'instructions est un groupe d'instructions visibles pour le programmeur utilisé pour programmer le processeur. D'un autre côté, l'organisation d'un processeur se réfère à sa structure et à sa composition de ressources de calcul globales, par exemple la structure de bus, la configuration de la mémoire à un certain nombre d'éléments de traitement. Un élément de traitement, dans un sens large, est un dispositif d'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 peut être aussi complexe qu'une unité centrale de traitement (CPU) qui effectue une grande variété d'opérations différentes.
I1 existe plusieurs architectures différentes, allant d'architectures fondées sur des ordinateurs à jeu d'instructions complexe (CISC) et des ordinateurs à jeu d'instructions réduit (RISC). De plus, certaines architectures n'ont 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 grande performance au coût le plus bas.
Toutefois, la performance d'un processeur informatique est complètement dépendant du problème auquel s'applique le processeur, et peu de processeurs informatiques à bas coût, voire aucun sont capables d'effectuer les opérations mathématiques énumérées cidessus à 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 coûteux ou du matériel conçu à cet effet.
De nombreuses autres applications, telles que des transformations de matrices sur des graphiques en temps réel, demandent des débits dépassant les capacités des processeurs simples et peu coûteux, tels que des microprocesseurs et des puces de TSN disponibles dans le commerce. Ces applications exigent au contraire l'utilisation d'ordinateurs coûteux à multiprocesseurs ou à processeurs multiples. Bien que les ordinateurs à multiprocesseurs présentent généralement des débits plus élevés, ils comprennent également des jeux d'instructions complexes et sont en général difficiles à programmer.
Ainsi, il existe le besoin d'un processeur informatique capable d'effectuer des opérations mathématiques à grande vitesse tout en restant peu coûteux. On ressent également le besoin d'un processeur informatique ayant un jeu d'instructions simple et facile à programmer pour fournir les opérations mathématiques souhaitées. De plus, il existe le besoin d'un processeur informatique présentant un débit élevé.
Un tel processeur doit également être de taille réduite et consommer relativement peu de courant.
Brève description des dessins
L'invention est particulièrement mise en évidence dans les revendications jointes. Toutefois, d'autres caractéristiques de l'invention apparaîtront plus clairement et l'invention sera mieux comprise si on se réfère à la description détaillée suivante et aux dessins joints dans lesquels
la figure 1 illustre un processeur informatique selon un mode de réalisation de la présente invention
la figure 2 illustre un processeur informatique selon un mode de réalisation préféré de la présente invention
la figure 3 représente un schéma conceptuel d'un arbre additionneur
la figure 4 représente un schéma conceptuel d'une unité d'accumulation
la figure 5 illustre un arbre additionneur utilisé conjointement avec une unité d'accumulation.
la figure 6 illustre une structure d'une instruction selon un mode de réalisation préféré de la présente invention
la figure 7 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 1 pour générer au moins un signal de sortie ;
la figure 8 représente un organigramme de données d'un procédé d' utilisation du processeur informatique de la figure 1 dans lequel les adresses sont distribuées aux éléments de traitement
la figure 9 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 1 dans lequel les signaux de sortie sont utilisés comme rétroaction
la figure 10 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 2 pour générer au moins un signal de sortie ;;
la figure 11 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 2 dans lequel les adresses sont distribuées aux éléments de traitement
la figure 12 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 2 dans lequel les signaux de sortie sont utilisés comme rétroaction ;
Description détaillée d'un mode de réalisation préféré
De manière générale, la présente invention propose un processeur informatique qui reçoit une pluralité de signaux d'entrée et qui, tour à tour, génère au moins un signal de sortie. Les signaux d'entrée et de sortie sont en général analysés comme étant des valeurs binaires qui représentent des données numériques.Selon un aspect de la présente invention, le processeur informatique comporte : un convertisseur de logarithme qui convertit les signaux d'entrée en des valeurs logarithmiques correspondantes ; deux éléments de traitement ou plus qui reçoivent les valeurs logarithmiques et les génère en tant que valeurs de termes de sortie ; un convertisseur de logarithme inverse pour convertir les valeurs de termes en des valeurs converties correspondantes ; un accumulateur pour additionner certaines des valeurs converties pour produire au moins un signal de sortie ; et une unité de commande qui configure l'accumulateur pour qu'il effectue des opérations selon une instruction.
Un avantage de la présente invention est qu'il 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 une multiplication de matrices, une inversion de matrices, des transformations de Fourier rapides (TFR), des autocorrélation et corrélation croisée, des transformations de cosinus discrets (TCD), des équations de polynômes, des calculs de normes L1 et
L2 et des équations différentielles en général, comme celles utilisées pour approcher par approximation des filtres de réponse infinie à une impulsion (IIR) et de réponse finie à une impulsion (FIR). Un autre avantage de la présente invention est qu'elle propose un processeur informatique présentant un débit élevé.Un autre avantage de la présente invention est qu'elle propose un processeur informatique mis en oeuvre de façon efficace dans un circuit intégré et ayant une taille proportionnellement petite et consommant relativement peu de courant.
La figure 1 illustre un processeur informatique selon un mode de réalisation de la présente invention.
Le processeur informatique comprend un convertisseur de logarithme 12 et une pluralité d'éléments de traitement, un convertisseur de logarithme inverse 28, une unité de commande 38, un commutateur de rétroaction 36 et un accumulateur 32. Trois éléments de la pluralité d'éléments de traitement sont représentés sur la figure 1 par les éléments de traitement 16a, 16b et 16c.
Le fonctionnement du processeur informatique se fait généralement comme suit. Au départ, le processeur informatique est configuré pour la durée de l'exécution. Cela est accompli lorsqu une instruction est reçue par l'unité de commande 38 sur un bus d'instructions 40. L'unité de commande 38 décode ensuite l'instruction pour générer un premier signal de commande 31 et un deuxième signal de commande 33. Le premier signal de commande 31 est utilisé pour configurer l'accumulateur 32 pour qu'il effectue des opérations d'addition spécifiques alors que le deuxième signal de commande 33 est utilisé pour configurer le commutateur de rétroaction 36 en une position soit ouverte soit fermée.
Après la configuration initiale de l'accumulateur 32 et du commutateur de rétroaction 36, une pluralité de signaux d'entrée peut être reçue par le convertisseur de logarithme 12 par le biais d'un port d'entrée 10. Le convertisseur de logarithme 12 effectue une conversion logarithmique de la pluralité de signaux d'entrée pour générer une pluralité correspondante de valeurs logarithmiques. Les valeurs logarithmiques sont ensuite distribuées, à travers un bus 14, aux entrées de la pluralité d'éléments de traitement 16a à 16c. En plus de recevoir les signaux d'entrée, le processeur informatique peut également recevoir une pluralité d'adresses correspondant aux signaux d'entrée. Les adresses sont distribuées, à travers un bus d'adresses 8, à la pluralité d'éléments de traitement 16a à 16c.
Les adresses sont utilisées par les éléments de traitement pour extraire les valeurs de données stockées correspondant aux valeurs d'entrée.
Après réception des signaux d'entrée, chaque élément de traitement effectue une ou plusieurs opérations qui donnent au moins une valeur de terme générée en tant que sortie. Les valeurs de termes générées par la pluralité d'éléments de traitement sont représentées par les chiffres 18a, 18b et 18c. Le convertisseur de logarithme inverse 28 effectue une conversion de logarithme inverse des valeurs de termes 18a à 18c pour générer une pluralité de valeurs converties 30. A son tour, l'accumulateur 32 additionne certaines des valeurs converties 30 choisies pour produire un ou plusieurs signaux de sortie qui sont disponibles sur un port de sortie 34.
Le convertisseur de logarithme 12 peut être n importe quel moyen permettant d'effectuer une conversion logarithmique des signaux d'entrée, comportant un programme informatique tournant sur un microprocesseur. Toutefois, dans un mode de réalisation préféré de la présente invention, le convertisseur de logarithme 12 s'approche par approximation d'une fonction logarithmique en utilisant la régression linéaire. Le convertisseur de logarithme 12 comporte une table à consulter (non représentée) et un moyen arithmétique (non représenté) pour effectuer des conversions bien connues des spécialistes de la technique.Les signaux d'entrée et les valeurs logarithmiques peuvent être toute représentation à n bits de valeurs numériques ; toutefois, ils sont de préférence représentés par des nombres à virgule flottante à 23 bits ayant une structure qui comporte un bit de signe, un exposant à 6 bits et une mantisse à 16 bits.
Lorsqu'un nombre à virgule flottante est reçu par le convertisseur de logarithme 12, les neuf bits les plus significatifs de la mantisse sont utilisés en tant qu'adresse pour extraire une entrée correspondante de la table à consulter précédemment mentionnée. L'entrée extraite est ensuite appliquée au moyen arithmétique pour générer la sortie de la valeur logarithmique à partir du convertisseur de logarithme 12. Des détails supplémentaires du convertisseur de logarithme 12 utilisé dans un mode de réalisation préféré sont donnés dans l'invention apparentée nO 4 identifiée ci-dessus.
Dans un autre mode de réalisation de la présente invention, le convertisseur de logarithme 12 s'approche par approximation d'une fonction logarithmique en utilisant une régression de deuxième ordre. Des signaux d'entrée sont représentés par les nombres à virgule flottante à 32 bits de la norme IEEE. En utilisant cette structure, chaque signal d'entrée a un bit de signe, un exposant à 11 bits et une mantisse à 23 bits.
Des détails supplémentaires du convertisseur de logarithme utilisé dans ce mode de réalisation préféré sont donnés dans l'invention apparentée nO 5 identifiée ci-dessus.
Chacun des éléments de traitement 16a à 16c génère en tant que sortie au moins une valeur de terme 18a à 18c, où
Figure img00100001
Equation 1 où y représente la valeur de terme, w représente une valeur de coefficient, xi représente la ième valeur logarithmique reçue par l'élément de traitement, gi représente une valeur d'exposant correspondant à la ième valeur logarithmique et i, m et n sont des entiers quelconques.
Dans un mode de réalisation préféré, un élément de traitement calcule une valeur de terme en utilisant un circuit numérique qui met en oeuvre une multiplication fondée sur un décalage tel que décrit dans l'invention apparentée nO 2 identifiée ci-dessus.
Chaque élément de traitement peut comporter une mémoire cache (non représentée) pour stocker au moins des valeurs d'exposant et de coefficient. Dans ce cas, chaque adresse reçue à travers le bus d'adresses 8 correspond à l'un des signaux d'entrée et est utilisée pour extraire de la mémoire cache des valeurs d'exposant et de coefficient qui correspondent au signal d'entrée.
Le convertisseur de logarithme inverse 28 peut être n'importe quel moyen permettant d'effectuer une conversion logarithmique inverse des valeurs de termes 18a à 18c, comportant un programme informatique tournant sur un microprocesseur ou le convertisseur de logarithme inverse décrit dans l'invention apparentée n05 identifiée ci-dessus. Toutefois, le convertisseur de logarithme inverse 28 a de préférence une structure identique à celle du convertisseur de logarithme inverse décrit dans l'invention apparentée n04 identifiée ci-dessus, dont la structure comporte une table à consulter (non représentée) et un moyen arithmétique (non représenté).Facultativement, les valeurs de termes 18a à 18c sont représentées par une valeur binaire ayant une partie entière et une partie fractionnaire, alors que les valeurs converties sont représentées par des nombres à virgule flottante à 23 bits ayant une structure qui comporte un bit de signe, un exposant à 6 bits et une mantisse à 16 bits toutefois, d'autres structures sont possibles, telles que la structure de virgule flottante à 32 bits qui est compatible avec IEEE. La partie fractionnaire des valeurs de termes 18a à 18c est utilisée pour extraire des entrées de la table à consulter. Les entrées extraites sont ensuite appliquées au moyen arithmétique pour générer les valeurs converties correspondantes.
Des détails supplémentaires du convertisseur de logarithme inverse préféré sont donnés dans l'invention apparentée nO 4 identifiée ci-dessus.
L'accumulateur 32 comporte une pluralité de circuits d'addition et de chemins de données pouvant être configurés, ou chemins d'acheminement.
Essentiellement, le premier signal de commande 31 valide de nombreux chemins de données pour des valeurs converties choisies aux entrées des circuits additionneurs. Le premier signal de commande 31 valide également des chemins de données qui acheminent les sorties des circuits additionneurs vers d'autres entrées des circuits additionneurs ou vers un port de sortie 34. Dans un mode de réalisation préféré de la présente invention, l'accumulateur 32 a la structure et la fonction du circuit accumulateur décrit dans l'invention apparentée nO 3 identifiée ci-dessus.
L'accumulateur peut être configuré pour effectuer l'une des quatre fonctions différentes. Premièrement, l'accumulateur 32 peut être configuré pour fonctionner comme un arbre additionneur. Avec cette configuration, l'accumulateur 32 génère des signaux de sortie en additionnant des valeurs converties correspondant à certains éléments choisis dans la pluralité d'éléments de traitement. Deuxièmement, l'accumulateur 32 peut être configuré pour fonctionner comme une pluralité d'accumulateurs individuels. Avec cette configuration, chacun des accumulateurs individuels génère des signaux de sortie en additionnant des valeurs converties provenant d'un élément désigné parmi les éléments de traitement. Troisièmement, l'accumulateur 32 peut être configuré pour fonctionner comme un arbre additionneur utilisé conjointement avec une unité d'accumulation.
Avec cette configuration, l'arbre additionneur génère une séquence de sorties de l'additionneur, dans le temps, en additionnant des valeurs converties correspondant à certains éléments choisis parmi les éléments de traitement, et l'unité d'accumulation additionne ensuite la séquence de sorties de l'additionneur pour produire des signaux de sortie.
Avec la quatrième configuration, l'accumulateur 32 passe simplement les valeurs converties comme des signaux de sortie.
En plus de produire les signaux de sortie, l'accumulateur 32 peut également générer des adresses de sortie qui correspondent aux signaux de sortie. Les adresses de sortie sont rendu disponibles sur le port de sortie 34 en même temps que les signaux de sortie correspondants et 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 stockées dans des mémoires à lecture seule (ROM, non représentées) qui sont situées dans les éléments de traitement 16a à 16c. Les éléments de traitement 16a à 16c font passer les adresses de sortie à l'accumulateur par les bus respectifs 19a à 19c. Chaque valeur de terme produite par les éléments de traitement a une adresse de sortie qui lui est associée. Dans des circonstances où les valeurs converties issues de différents éléments de traitement sont combinées en un signal de sortie, l'accumulateur 32 choisit une adresse de sortie parmi une pluralité d'adresses de sorties reçues puis associe l'adresse de sortie choisie au signal de sortie. Par exemple, si l'accumulateur 32 est configuré pour produire un signal de sortie en additionnant les valeurs converties issues des éléments de traitement un et deux 16a à 16c, l'accumulateur peut ensuite associer l'adresse de sortie issue de l'élément de traitement un 16a au signal de sortie.
Le commutateur de rétroaction 36 fournit des signaux de sortie au convertisseur de logarithme 12 en fonction du deuxième signal de commande 33 issu de l'unité de commande 38. La situation du deuxième signal de commande 33 établit le commutateur de rétroaction en position soit ouverte soit fermée. En position fermée, les signaux de sortie sont fournis en tant que rétroaction. La situation du deuxième signal de commande 33 dépend de l'instruction décodée par l'unité de commande 38. Les instructions peuvent faire fonctionner le commutateur de rétroaction de l'une des trois façons.Une instruction peut soit : (1) maintenir le commutateur de rétroaction 36 en position ouverte, ne fournissant ainsi pas de rétroaction ; soit (2) fermer le commutateur de rétroaction 36 après un intervalle prédéterminé ; soit (3) ouvrir ou fermer périodiquement le commutateur de rétroaction 36 à des instants prédéterminés pendant le fonctionnement du processeur informatique.
La rétroaction de signaux de sortie permet au processeur informatique de fonctionner à un débit bien plus élevé pendant certaines opérations, tels que celles de calcul des normes L1 et L2 ou filtre numérique de réponse infinie à une impulsion (IIR), etc.
Bien que le processeur informatique de la présente invention soit de préférence mis en oeuvre comme un circuit intégré, tel qu'un circuit intégré spécifique
ASIC, il sera compris par une personne ayant une connaissance ordinaire de la technique qu un processeur informatique de la présente invention peut être mis en oeuvre dans du matériel ou un logiciel, ou toute combinaison de ceux-ci. Par exemple, une version de la présente invention peut mettre en oeuvre le convertisseur de logarithme 12 en tant que programme logiciel pouvant être exécuté sur un processeur séparé, comme un microprocesseur, alors que les éléments restants du processeur informatique peuvent être incorporés dans un circuit intégré à la demande, connecté au processeur séparé.
La figure 2 illustre un processeur informatique selon un mode de réalisation préféré de la présente invention. En plus des éléments représentés sur la figure 1, le processeur informatique comporte de préférence un multiplexeur 45 et un démultiplexeur 53.
Le multiplexeur 45 choisit, selon un troisième signal de commande 46, des signaux d'entrée issus d'un premier port d'entrée 42 ou d'un deuxième port d'entrée 44. Le démultiplexeur 53 transmet, selon un quatrième signal de commande 52, des signaux de sortie à un premier port de sortie 54 ou à un deuxième port de sortie 56. En plus de transmettre les signaux de sortie, le démultiplexeur 53 peut également transmettre des adresses de sortie à l'un des ports de sortie. Les troisième et quatrième signaux de commande 46, 52 sont générés par l'unité de commande 39 lorsqu'elle décode une instruction 40.
Les doubles ports d'entrée et de sortie permettent au processeur informatique de recevoir des signaux d'entrée de deux flux de données différents et fournir des signaux de sortie à l'un des deux récepteurs. Cela améliore de façon significative la flexibilité du processeur informatique dans de nombreuses applications. Par exemple, deux flux de données présentant différents débits et exigences de traitement peuvent être superposés par le processeur informatique, augmentant ainsi le débit total du processeur.
La figure 3 représente un schéma conceptuel d'un arbre additionneur 62. L'arbre additionneur 62 comprend une pluralité de circuits additionneurs qui sont connectés ensemble de la façon représentée pour combiner une pluralité d'entrées d'arbre additionneur 60 en une somme unique sur une sortie d'arbre additionneur 64. I1 existe de nombreux additionneurs numériques différents pouvant être utilisés pour mettre en oeuvre chaque circuit additionneur, comprenant un additionneur par lecture anticipée de report ou un additionneur en cascade. Chaque circuit additionneur additionne deux opérandes pour produire une somme ainsi, un arbre additionneur nécessite n-l circuits additionneurs pour n entrées. Dans l'exemple représenté, l'arbre additionneur 62 comporte sept circuits additionneurs et peut additionner huit entrées.
La figure 4 représente un schéma conceptuel d'une unité d'accumulation 70. L'unité d'accumulation comprend un circuit additionneur 66 pour produire une somme et un registre 68 pour stocker la somme. De plus, le registre 68 fournit la somme en tant qu'entrée au circuit additionneur 66. Cela permet à l'unité d'accumulation d'additionner une séquence d'entrées. En établissant la sortie du registre 68 à zéro, le circuit additionneur 66 fait simplement passer les entrées à la sortie de l'unité d'accumulation.
La figure 5 illustre l'arbre additionneur 62 utilisé conjointement avec l'unité d'accumulation 70.
Cette structure permet aux entrées de l'arbre additionneur 60 d'être additionnées, sur une période de temps, en une valeur unique. Un premier ensemble de signaux d'entrée est reçu au niveau des entrées 60 de l'arbre additionneur puis combiné en une somme unique au niveau de la sortie 64 de l'arbre additionneur. La sortie 64 de l'arbre additionneur est ensuite additionné au contenu du registre 68 pour produire une autre somme. A son tour, l'autre somme est stockée dans le registre 68 et le processus est répété lorsqu'un autre ensemble d'entrées arrive au niveau des entrées 60 de l'arbre additionneur.
La figure 6 illustre une structure d'instructions selon un mode de réalisation préféré de la présente invention. Une personne ayant une connaissance ordinaire de la technique comprendra qu'une instruction informatique peut prendre plusieurs structures différentes et garder le même sens, mais la structure d'instructions de la présente invention est de préférence un mot numérique à 19 bits qui comporte les champs suivants : une identification de l'instruction, un mode E/S, une identification de puce, un décalage et une adresse. L'instruction d'identification est une galette à 5 bits qui indique l'identité de l'instruction. Ainsi, la structure préférée permet au jeu d'instructions du processeur informatique de comprendre jusqu'à 32 instructions différentes. Tel que représenté sur la figure 6, l'identification de l'instruction comporte les bits 14 à 18 d'une instruction. Le mode E/S est une galette à 2 bits qui est décodée pour générer le troisième signal de commande 46 et le quatrième signal de commande 52. Ces signaux, à leur tour, configurent les ports d'entrée et de sortie du processeur informatique. Le mode E/S est situé au niveau des bits 12-13 d'une instruction. Les bits 7 à 11 d'une instruction donnent l'identification de la puce. Dans un mode de réalisation préféré, un processeur informatique a un nombre d'identification à 5 bits correspondant. 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 informatiques ayant des nombres d'identification qui correspondent 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 premier signal de commande 31 qui, à son tour, configure l'accumulateur 32.
La figure 7 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 1 pour générer au moins un signal de sortie. A la case 100, une pluralité de signaux d'entrée est reçue sur le port d'entrée 10 du processeur informatique. Ensuite, à la case 102, le convertisseur de logarithme 12 effectue une conversion logarithmique des signaux d'entrée pour générer une pluralité correspondante de valeurs logarithmiques. A la case 104, les valeurs logarithmiques sont distribuées à la pluralité d'éléments de traitement 16a à 16c. A la case 106, chacun des éléments de traitement génère au moins une valeur de terme à la suite de la réception des valeurs logarithmiques. A la case 108, une conversion logarithmique inverse des valeurs de termes est effectuée pour générer une pluralité de valeurs converties.A la case 110, une instruction est décodée par l'unité de commande 38 pour générer le premier signal de commande 31 qui configure l'accumulateur 32 pour qu'il effectue les opérations d'addition. Ensuite, à la case 112, l'accumulateur 32 additionne certaines des valeurs converties pour produire un signal de sortie au nombre d'au moins un sur le port de sortie 34.
En référence à la case 110, l'accumulateur 32 est configuré pour effectuer l'une des quatre fonctions différentes, tel que décrit ci-dessus pour la figure 1.
Dans un mode de réalisation de la présente invention, l'étape de configuration de l'accumulateur 32, case 110, se produit avant l'étape de réception des signaux d'entrée, case 100.
En référence maintenant à la case 112, le processeur informatique peut, en plus des signaux de sortie, générer des adresses de sortie qui correspondent aux signaux de sortie. Ces adresses de sortie peuvent être utilisées par des dispositifs couplés au processeur informatique pour identifier des signaux de sortie individuels.
La figure 8 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 1 dans lequel les adresses sont distribuées aux éléments de traitement. Contrairement au procédé représenté sur la figure 7, le procédé représenté sur la figure 8 comporte des étapes de traitement de signaux d'entrée et de leurs adresses correspondantes. A la case 120, une pluralité de signaux d'entrée et les adresses qui lui sont associées sont reçues par le processeur informatique. Ensuite, à la case 122, le convertisseur de logarithme 12 effectue une conversion logarithmique des signaux d'entrée pour générer une pluralité de valeurs logarithmiques. A la case 124, les valeurs logarithmiques et leurs adresses respectives sont distribuées à la pluralité d'éléments de traitement 16a à 16c.A la case 126, chaque élément de traitement utilise les adresses pour extraire des valeurs d'exposant et de coefficient correspondant aux signaux d'entrée. Ensuite, à la case 128, chacun des éléments de traitement génère au moins une valeur de terme à la suite de la réception des valeurs logarithmiques et de l'extraction des valeurs d'exposant et de coefficient. A la case 130, une conversion logarithmique inverse des valeurs de termes est effectuée pour générer une pluralité de valeurs converties. A la case 132, une instruction est décodée par l'unité de commande 38 pour générer le premier signal de commande 31 qui configure l'accumulateur 32 pour qu'il effectue les opérations d'addition. Ensuite, à la case 134, l'accumulateur 32 additionne certaines des valeurs converties pour produire le signal de sortie au nombre d'au moins un sur le port de sortie 34.
En référence à la case 132, l'accumulateur 32 est configuré pour effectuer l'une des quatre fonctions différentes, tel que décrit ci-dessus pour la figure 1.
Dans un mode de réalisation de la présente invention, l'étape de configuration de l'accumulateur 32, case 132, se produit avant l'étape de réception des signaux d'entrée, case 120.
En référence maintenant à la case 134, le processeur informatique peut, en plus des signaux de sortie, générer des adresses de sortie qui correspondent aux signaux de sortie. Ces adresses de sortie peuvent être utilisées par des dispositifs couplés au processeur informatique pour identifier des signaux de sortie individuels.
La figure 9 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 1 dans lequel les signaux de sortie sont utilisés comme rétroaction. La rétroaction de signaux de sortie permet au processeur informatique de fonctionner à un débit bien plus élevé pendant certaines opérations, comme celles de calcul des normes L1 et L2 ou filtre numérique de réponse infinie à une impulsion (IIR). A la case 140, une pluralité de signaux d'entrée est reçue par le processeur informatique. Ensuite, à la case 142, le convertisseur de logarithme 12 effectue une conversion logarithmique des signaux d'entrée pour générer une pluralité de valeurs logarithmiques. A la case 144, les valeurs logarithmiques sont distribuées à la pluralité d'éléments de traitement 16a à 16c. A la case 146, chaque élément de traitement génère au moins une valeur de terme à la suite de la réception des valeurs logarithmiques. A la case 148, une conversion logarithmique inverse des valeurs de termes est effectuée pour générer une pluralité de valeurs converties. A la case 150, une instruction est décodée par l'unité de commande 38 pour générer le premier signal de commande 31 qui configure 1 accumulateur 32 pour qu'il effectue des opérations d'addition. Ensuite, à la case 152, l'accumulateur 32 additionne certaines des valeurs converties pour produire le signal de sortie au nombre d'au moins un sur le port de sortie 34.
A la case de décision 154, une vérification est effectuée pour déterminer si les signaux de sortie doivent être fournis en tant que rétroaction. Si c'est le cas, le procédé retourne à la case 142 et les signaux de sortie sont fournis en tant qu'entrées au convertisseur de logarithme 12 par le biais du commutateur de rétroaction 36. Sinon, le procédé s'achève. Le fait de déterminer s'il faut ou non fournir une rétroaction se fonde sur l'instruction décodée par l'unité de commande 38.
En référence à la case 150, l'accumulateur 32 est configuré pour effectuer l'une des quatre fonctions, tel que décrit ci-dessus pour la figure 1. Dans un mode de réalisation de la présente invention, l'étape de configuration de l'accumulateur 32, case 150, se produit avant l'étape de réception des signaux d'entrée, case 140.
En référence maintenant à la case 152, le processeur informatique peut, en plus des signaux de sortie, générer des adresses de sortie qui correspondent aux signaux de sortie. Ces adresses de sortie peuvent être utilisées par des dispositifs couplés au processeur informatique pour identifier des signaux de sortie individuels.
La figure 10 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 2 pour générer au moins un signal de sortie. En référence à la case 160, les premier, troisième et quatrième signaux de commande sont générés par le décodage d'une instruction. A la case 162, le troisième signal de commande 46 est appliqué au multiplexeur 45 pour choisir une pluralité de signaux d'entrée soit dans le premier port d'entrée 42 soit dans le deuxième port d'entrée 44. Ensuite, à la case 164, le convertisseur de logarithme 12 effectue une conversion logarithmique de la pluralité de signaux d'entrée pour générer une pluralité correspondante de valeurs logarithmiques. A la case 166, les valeurs logarithmiques sont distribuées à la pluralité d'éléments de traitement 16a à 16c. A la case 168, chaque élément de traitement génère au moins une valeur de terme.A la case 170, une conversion logarithmique inverse des valeurs de termes est effectuée pour générer une pluralité de valeurs converties. Ensuite, à la case 172, le premier signal de commande 31 est appliqué à l'accumulateur 32 pour configurer l'accumulateur 32 de sorte qu'il effectue des opérations d'addition. A la case 174, l'accumulateur 32 additionne certaines valeurs choisies de la pluralité de valeurs converties pour produire le signal de sortie au nombre d'au moins un. A la case 176, le quatrième signal de commande 52 est appliqué au démultiplexeur 53 afin de transmettre le signal de sortie au nombre d'au moins un soit au premier port de sortie 54 soit au deuxième port de sortie 56.
La figure 11 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 2 dans lequel les adresses sont distribuées aux éléments de traitement. En référence à la case 200, les premier, troisième et quatrième signaux de commande sont générés par le décodage d'une instruction. A la case 202, le troisième signal de commande 46 est appliqué au multiplexeur 45 pour choisir une pluralité de signaux d'entrée soit dans le premier port d'entrée 42 soit dans le deuxième port d'entrée 44. Ensuite, à la case 204, une pluralité d'adresses correspondant aux signaux d'entrée est reçue. A la case 206, le convertisseur de logarithme 12 effectue une conversion logarithmique de la pluralité de signaux d'entrée pour générer une pluralité correspondante de valeurs logarithmiques.A la case 208, les valeurs logarithmiques et leurs adresses correspondantes sont distribuées à la pluralité d'éléments de traitement 16a à 16c. A la case 210, chaque élément de traitement utilise les adresses pour extraire des valeurs d'exposant et de coefficient correspondant aux signaux d'entrée puis génère au moins une valeur de terme. A la case 212, une conversion logarithmique inverse des valeurs de termes est effectuée pour générer une pluralité de valeurs converties. Ensuite, à la case 214, le premier signal de commande 31 est appliqué à l'accumulateur 32 afin de configurer l'accumulateur 32 pour qu'il effectue des opérations d'addition. A la case 216, l'accumulateur 32 additionne certaines valeurs choisies de la pluralité de valeurs converties pour produire le signal de sortie au nombre d'au moins un.A la case 218, le quatrième signal de commande 52 est appliqué au démultiplexeur 53 afin de transmettre le signal de sortie au nombre d'au moins un soit au premier port de sortie 54 soit au deuxième port de sortie 56.
La figure 12 représente un organigramme de données d'un procédé d'utilisation du processeur informatique de la figure 2 dans lequel les signaux de sortie sont utilisés en tant que rétroaction. En référence à la case 230, les premier, troisième et quatrième signaux de commande sont générés par le décodage d'une instruction. A la case 232, le troisième signal de commande 46 est appliqué au multiplexeur 45 pour choisir une pluralité de signaux d'entrée soit dans le premier port d' entrée 42 soit pour le deuxième port d'entrée 44. Ensuite, à la case 234, le convertisseur de logarithme 12 effectue une conversion logarithmique de la pluralité de signaux d'entrée pour générer une pluralité correspondante de valeurs logarithmiques. A la case 236, les valeurs logarithmiques sont distribuées à la pluralité d'éléments de traitement 16a à 16c.A la case 238, chaque élément de traitement génère au moins une valeur de terme. A la case 240, une conversion logarithmique inverse des valeurs de termes est effectuée pour générer une pluralité de valeurs converties. Ensuite, à la case 242, le premier signal de commande 31 est appliqué à l'accumulateur 32 afin de configurer l'accumulateur 32 pour qu'il effectue des opérations d'addition. A la case 244, l'accumulateur 32 additionne certaines valeurs choisies de la pluralité de valeurs converties pour produire le signal de sortie au nombre d'au moins un.
A la case de décision 246, une vérification est effectuée pour déterminer si les signaux de sortie doivent être fournis en tant que rétroaction. Si c'est le cas, le procédé retourne à la case 234 et les signaux de sortie sont fournis en tant qu'entrées au convertisseur de logarithme 12 par le biais du commutateur de rétroaction 36. Sinon, le procédé s'achève. Le fait de déterminer s'il faut ou non fournir une rétroaction se fonde sur l'instruction décodée par l'unité de commande 39.
A la case 248, le quatrième signal de commande 52 est appliqué au démultiplexeur 53 afin de transmettre le signal de sortie, au nombre d'au moins un, soit au premier port de sortie 54 soit au deuxième port de sortie 56.
Ainsi, en résumé, il a été décrit ici un concept, ainsi que plusieurs modes de réalisation, dont un mode de réalisation préféré, d'un processeur informatique qui effectue des conversions logarithmiques de signaux d'entrées 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 bien plus élevées tout en réduisant la taille et la complexité du processeur dans un circuit intégré. En travaillant sur des valeurs logarithmiques plutôt que sur des signaux d'entrée numériques, les éléments de traitement peuvent être mis en oeuvre en utilisant un espace de silicium bien inférieur.
Puisque de nombreux modes de réalisation de la présente invention proposent un processeur informatique qui comporte des ports d'entrée et de sortie doubles, ils agissent à des débits bien supérieurs.
Alors que des modes de réalisation spécifiques de la présente invention ont été montrés et décrits, il est évident pour les spécialistes de la technique que l'invention décrite peut être modifiée de nombreuses façons et qu'elle peut imaginer de nombreux modes de réalisation autres que la forme préférée établie spécifiquement et décrite ci-dessus.
Par conséquent, l'objectif des revendications jointes est de couvrir toutes les modifications de l'invention qui s'inscrivent dans les véritables esprit et cadre de l'invention.

Claims (10)

Revendications
1. Dans un processeur informatique ayant un premier port d'entrée, un deuxième port d'entrée et une pluralité d'éléments de traitement, procédé de génération d'au moins un signal de sortie, le procédé comprenant les étapes suivantes
génération d'un premier signal de commande, d'un troisième signal de commande et d'un quatrième signal de commande par décodage d'une instruction
application du troisième signal de commande à un multiplexeur pour choisir une pluralité de signaux d'entrée soit dans le premier port d'entrée soit dans le deuxième port d'entrée ;
réalisation d'une conversion logarithmique d'une pluralité de signaux d'entrée pour générer une pluralité de valeurs logarithmiques ;
distribution de la pluralité de valeurs logarithmiques à la pluralité d'éléments de traitement ;;
chaque élément de la pluralité d'éléments de traitement générant au moins une valeur de terme
réalisation d'une conversion logarithmique inverse de la valeur de terme au nombre d'au moins un de chaque élément de la pluralité d'éléments de traitement pour générer une pluralité de valeurs converties ;
application du premier signal de commande à un accumulateur pour configurer l'accumulateur pour qu'il effectue des opérations d'addition ;
addition de certaines des valeurs de la pluralité de valeurs converties pour produire le signal de sortie au nombre d'au moins un ; et
application du quatrième signal de commande à un démultiplexeur pour transmettre le signal de sortie au nombre d'au moins un soit au premier port de sortie soit au deuxième port de sortie.
2. Procédé selon la revendication 1, dans lequel la valeur de terme au nombre d'au moins un a la forme
Figure img00280001
où y représente la valeur de terme au nombre d'au moins un, w représente une valeur de coefficient, gi représente une valeur d'exposant, xi représente l'une des valeurs de la pluralité de valeurs logarithmiques, m et n sont des entiers et i est un entier compris entre m et n.
3. Procédé selon la revendication 2, comprenant en outre les étapes suivantes
réception d'une pluralité d'adresses correspondant à la pluralité de signaux d'entrée ;
distribution de la pluralité d'adresses à la pluralité d'éléments de traitement ; et
chaque élément de la pluralité d'éléments de traitement utilisant la pluralité d'adresses pour extraire d'une mémoire cache la valeur de coefficient et la valeur d'exposant correspondant à l'un des signaux de la pluralité de signaux d'entrée.
4. Procédé selon la revendication 1, dans lequel l'étape de génération des signaux de commande comporte les sous-étapes de
génération d'un deuxième signal de commande par décodage de l'instruction ; et
dans lequel le procédé comprend en outre l'étapes suivante
introduction du signal de sortie au nombre d'au moins un dans la pluralité de signaux d'entrée selon le deuxième signal de commande.
5. Procédé selon la revendication 1, dans lequel l'étape d'application du premier signal de commande comporte la sous-étape de
configuration de l'accumulateur pour qu'il génère un signal de sortie en additionnant des valeurs converties correspondant à certains éléments choisis dans la pluralité d'éléments de traitement.
6. Procédé selon la revendication 1, dans lequel l'étape d'application du premier signal de commande comporte la sous-étape de
configuration de l'accumulateur pour qu'il génère une pluralité de signaux de sortie, chaque signal de la pluralité de signaux de sortie étant généré en additionnant des valeurs converties correspondant à un élément de la pluralité d'éléments de traitement.
7. Procédé selon la revendication 1, dans lequel l'étape d'application du premier signal de commande comporte la sous-étape de
configuration de l'accumulateur pour qu'il génère un signal de sortie en additionnant des valeurs converties correspondant à certains éléments choisis dans la pluralité d'éléments de traitement pour produire une séquence de sorties de l'additionneur, dans le temps, et en additionnant la séquence de sorties de l'additionneur pour produire le signal de sortie.
8. Procédé selon la revendication 1, comprenant en outre l'étape de
génération d'au moins une adresse de sortie qui correspond au signal de sortie au nombre d'au moins un.
9. Processeur informatique recevant une pluralité de signaux d'entrée et générant au moins un signal de sortie, qui comprend
un convertisseur de logarithme pour effectuer une conversion logarithmique de la pluralité de signaux d'entrée pour générer une pluralité de valeurs logarithmiques ;
une pluralité d'éléments de traitement, chaque élément de la pluralité d'éléments de traitement ayant une entrée et générant en tant que sortie au moins une valeur de terme y telle que
Figure img00300001
où w représente une valeur de coefficient, gi représente une valeur d'exposant, xi représente lune des valeurs de la pluralité de valeurs logarithmiques, m et n sont des entiers et i est un entier compris entre m et n ;
un bus pour distribuer la pluralité de valeurs logarithmiques aux entrées de la pluralité d'éléments de traitement ;;
un convertisseur de logarithme inverse pour effectuer une conversion logarithmique inverse de la valeur de terme, au nombre d'au moins un, de chaque élément de la pluralité d'éléments de traitement pour générer une pluralité de valeurs converties ;
un accumulateur pour additionner certaines valeurs de la pluralité de valeurs converties pour produire le signal de sortie, au nombre d'au moins un ; et
une unité de commande couplée de façon à fonctionner, à l'accumulateur, afin de configurer l'accumulateur pour qu'il effectue des opérations selon une instruction pouvant être décodée par l'unité de commande.
10. Procédé d'utilisation d'un processeur informatique, ayant un port d'entrée et une pluralité d'éléments de traitement, pour générer au moins un signal de sortie, le procédé comprenant les étapes suivantes
(a) réception d'une pluralité de signaux d'entrée sur le port d'entrée ;
(b) réalisation d'une conversion logarithmique de la pluralité de signaux d'entrée pour générer une pluralité de valeurs logarithmiques ;
(c) distribution de la pluralité de valeurs logarithmiques à la pluralité d'éléments de traitement ; ;
(d) chaque élément de la pluralité d'éléments de traitement générant au moins un terme de valeur
(e) réalisation d'une conversion logarithmique inverse d'au moins une valeur de terme de chaque élément de la pluralité d'éléments de traitement pour générer une pluralité de valeurs converties
(f) décodage d'une instruction pour configurer un accumulateur afin qu'il effectue des opérations d'addition ; et
(g) addition de certaines valeurs de la pluralité de valeurs converties pour produire le signal de sortie, au nombre d'au moins un.
FR9601725A 1995-03-13 1996-02-13 Processeur informatique utilisant la conversion logarithmique et son procede d'utilisation Pending FR2731813A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/403,158 US5685008A (en) 1995-03-13 1995-03-13 Computer Processor utilizing logarithmic conversion and method of use thereof
US08/512,849 US5696986A (en) 1995-03-13 1995-08-09 Computer processor utilizing logarithmic conversion and method of use thereof

Publications (1)

Publication Number Publication Date
FR2731813A1 true FR2731813A1 (fr) 1996-09-20

Family

ID=27018181

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9601725A Pending FR2731813A1 (fr) 1995-03-13 1996-02-13 Processeur informatique utilisant la conversion logarithmique et son procede d'utilisation

Country Status (8)

Country Link
US (1) US5696986A (fr)
KR (1) KR960035301A (fr)
CN (1) CN1140278A (fr)
AU (1) AU4768296A (fr)
FR (1) FR2731813A1 (fr)
IT (1) IT1284293B1 (fr)
SG (1) SG73402A1 (fr)
WO (1) WO1996028775A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930158A (en) * 1997-07-02 1999-07-27 Creative Technology, Ltd Processor with instruction set for audio effects
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
US6023719A (en) * 1997-09-04 2000-02-08 Motorola, Inc. Signal processor and method for fast Fourier transformation
US5951629A (en) * 1997-09-15 1999-09-14 Motorola, Inc. Method and apparatus for log conversion with scaling
US7231614B2 (en) * 2004-07-06 2007-06-12 Quickfilter Technologies, Inc. System and method for design and implementation of integrated-circuit digital filters
US8510361B2 (en) * 2010-05-28 2013-08-13 George Massenburg Variable exponent averaging detector and dynamic range controller

Citations (3)

* Cited by examiner, † Cited by third party
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
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

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439839A (en) * 1981-08-24 1984-03-27 International Telephone And Telegraph Corporation Dynamically programmable processing element
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
US5359551A (en) * 1989-06-14 1994-10-25 Log Point Technologies, Inc. High speed logarithmic function generating apparatus
US5097434A (en) * 1990-10-03 1992-03-17 The Ohio State University Research Foundation Hybrid signed-digit/logarithmic number system processor
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
US5553012A (en) * 1995-03-10 1996-09-03 Motorola, Inc. Exponentiation circuit utilizing shift means and method of using same

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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
WO1996028775A1 (fr) 1996-09-19
KR960035301A (ko) 1996-10-24
IT1284293B1 (it) 1998-05-18
CN1140278A (zh) 1997-01-15
ITRM960155A0 (fr) 1996-03-11
ITRM960155A1 (it) 1997-09-11
AU4768296A (en) 1996-10-02
US5696986A (en) 1997-12-09
SG73402A1 (en) 2000-06-20

Similar Documents

Publication Publication Date Title
US6754805B1 (en) Method and apparatus for configurable multi-cell digital signal processing employing global parallel configuration
US6601077B1 (en) DSP unit for multi-level global accumulation
US6943579B1 (en) Variable fixed multipliers using memory blocks
EP3084588B1 (fr) Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal.
EP0259231B1 (fr) Dispositif de détermination de la transformée numérique d'un signal
FR2738366A1 (fr) Processeur informatique presentant une architecture pipeline et procede d'utilisation de celui-ci
EP0692762A1 (fr) Circuit logique de multiplication parallèle
EP0262032B1 (fr) Additionneur binaire comportant un opérande fixé, et multiplieur binaire parallèle-série comprenant un tel additionneur
EP0171305B1 (fr) Circuit de calcul de la transformée de Fourier discrète
FR2731813A1 (fr) Processeur informatique utilisant la conversion logarithmique et son procede d'utilisation
EP0437876B1 (fr) Multiplieur série programmable
FR2793971A1 (fr) Multiplieur de nombres complexes
FR2849512A1 (fr) Multiplieur modulaire de montgomery et procede de multiplication correspondant
EP2319177B1 (fr) Dispositif de filtrage a stucture hierarchique et dispositif de filtrage reconfigurable
FR3101980A1 (fr) Processeur
EP0237382B1 (fr) Dispositif de transformée en cosinus d'un signal numérique échantilloné
FR2772950A1 (fr) Dispositif electronique de calcul d'une transformee de fourier a architecture dite "pipelinee" et procede de commande correspondant
EP0476592A2 (fr) Générateur d'adresses pour la mémoire de données d'un processeur
US5685008A (en) Computer Processor utilizing logarithmic conversion and method of use thereof
FR2530854A1 (fr) Procede d'execution d'un traitement mathematique a l'aide d'une memoire permanente et dispositif d'adressage pour sa mise en oeuvre
EP1168242B1 (fr) Dispositif de traitement de données
FR2809835A1 (fr) Systeme et procede d'arrondissement base sur une selection pour des operations a virgule flottante
EP1335277B1 (fr) Opérateur saturant à haute efficacité
EP0122843B1 (fr) Intégrateur modulaire
EP0329572B1 (fr) Multiplieur de nombres binaires à très grand nombre de bits