DIGITAL PROCESSOR FOR REAL TIME SIGNALS

Abstract: 1. Digital, real time signal processor to be coupled to a computer (10), said processor comprising an input - output circuit (20), a coupling circuit (40) connected to the computer (10), an input - output control unit (30), a buffer memory (50) and digital signal processing means (60), the input - output control unit (30), the buffer memory (50) and the digital signal processing means (60) being interconnected by an interconnection bus (81) and by a bus system (85), the interconnection bus (81) comprising a receive bus (82), a transmit bus (83) and a data bus (84), the bus system (85) comprising a select bus (86), an address bus (87), a waveform address bus (88) and a data bus (89), the digital signal processing means (60) comprising a plurality of processing modules (101, 102 ... 110), each of these modules being controlled by the select bus (86), the transmit bus (83) and the receive bus (82), the data being exchanged between the modules by the data bus (84), wherein each module comprises : a) an arithmetic unit (115) having at least one first input connected to a first bus A, a second input and an output connected to a second bus B, b) a fast multiplier (120) having at least one first input connected to the first bus A and one second input connected to the second bus B and an output connected to the second input of the arithmetic unit (115) c) a shift register connected to the second bus B, d) a waveform memory (140) containing given waveform samples, said memory being addressed by the waveform address bus (88) and hawing an output connected to the first bus A, e) a data memory (150) hawing an input connected to the second bus B, an output connected to the first bus A and an address input, f) an address memory (160), g) a first address multiplexer (162) having a first input connected to the bus system (85), a second input and an output connected to the address memory (160), h) a counter (161) connected to the second input of the first multiplexer, i) a second address multiplexer (170) having a first input connected to the address bus (87) and a second input connected to the address memory (160) and an output connected to the addressing input of the data memory (150), j) a microprogramme memory (180), each microprogramme containing instructions able to interconnect the various components of a module, said memory having an output connected to the bus system (85), said microprogramme memory being addressed by the counter (161), k) a first buffer memory (181) connected between the first bus A and the interconnection bus (81) and l) a second buffer memory (185) connected between the second bus B and the bus system (85).

Description: La présente invention a pour objet un processeur numérique de signal en temps réel. Elle trouve des applications en traitement du son, en télécommunications, en traitement d'images, dans l'optimisation de conduite de processus, etc... et plus généralement dans toutes les techniques de traitement de signal en temps réel. Il est fréquent dans les systèmes informatiques, d'associer à un ordinateur un organe périphérique chargé d'effectuer des traitements particuliers, ce qui décharge l'ordinateur de certaines tâches et le rend disponiblepour d'autres. L'organisation générale d'un tel système est illustré sur la figure 1. Un ordinateur 10 est relié à une mémoire de masse 12 et à des organes de dialogue 1. Cet ordinateur est associé à un processeur périphérique 16. Ce processeur comprend tout d'abord un circuit 20 d'entrées-sorties ; certaines entrées 21 sont munies d'un convertisseur numérique analogique 22 et d'autres, 23, d'un convertisseur analogique numérique 24. Ces entrées-sorties travaillent donc en analogique. Les autres entrées 25 et sorties 26 travaillent en numérique. Le processeur périphérique comprend encore une unité 30 de gestion des entrées-sorties, un circuit 40 de couplage avec l'ordinateur 10, une mémoire-tampon 50, des moyens 60 de traitement numérique et un circuit 70 de gestion des moyens 60. L'ensemble de ces moyens est interconnecté par un bus 80. Dans un tel système l'ordinateur 10 gère le processeur périphérique 16. La mémoire de masse 12 stocke des informations destinées au processeur ou provenant de celui-ci. Des signaux provenant de l'extérieur peuvent être appliqués aux entrées 21, 25. De même, des signaux délivrés par les sorties 23, 26 peuvent être appliqués à des moyens extérieurs non représentés et dont la nature dépend naturellement de l'application en -cours. Les processeurs périphériques utilisés jusqu'à ce jour comprennent des moyens de traitement numérique dont les i-ifférents éléments présentent une configuration déterminée à l'avance et qui est fonction du traitement à effectuer. Si cette solution convient bien lorsque ce traitement est toujours le même, elle présente naturellement un inconvénient lorsqu'il s'agit d'effectuer des opérations différentes, pouvant varier en cours de traitement, ou d'un traitement à l'autre. La présente invention résout ce problème en proposant des moyens de traitement composés d'éléments susceptibles d'être organisés selon diverses configurations. Celles-ci sont commandées par des microprogrammes qui sont enregistrés dans une mémoire spéciale. L'invention porte donc essentiellement sur un processeur tel que l'ensemble 16 de la figure 1 et plus particulièrement sur la structure et la fonction des moyens 60 du système appartenant à ce processeur. De façon précise, la présente invention a pour objet un processeur numérique de signal en temps réel, destiné à être couplé à un ordinateur, ce processeur comprenant comme indiqué en référence à la figure 1, un circuit 20 d'entrées-sorties, une unité 30 de gestion des entrées-sorties, un circuit 40 de couplage avec l'ordinateur, une mémoire tampon 50, des moyens 60 de traitement numérique de signal, un circuit 70 de gestion des moyens 60 de traitement ; ; ce processeur est caractérisé en ce que les moyens 60 de traitement numérique de signal sont constitués par une pluralité de modules de traitement interconnectés, chaque module comprenant - une unité arithmétique, - un multiplicateur rapide, - un registre à décalage, - une mémoire de fonctions, - une mémoire de données adressable contenant toutes données manipulées par les différentes fonctions du processeur, - une mémoire d'adresses exploitée séquentiellement et permettant une exploration de la mémoire de don nées, - une mémoire de microprogrammes, chaque micropro gramme contenant des instructions aptes à intercon necter l'unité arithmétique, le multiplicateur, le registre à décalage et la mémoire de formes d'ondes, selon une configuration particulière. De toute façon, les caractéristiques et avantages de l'invention apparattront mieux après la description qui suit, d'exemples de réalisation donnés à titre illustratif et nullement limitatif. Cette description se réfère à des dessins annexés, qui font suite à la figure 1 déjà décrite et sur lesquels - la figure 2 représente schématiquement l'organisation des cartes portant les circuits du processeur et leur mode de liaison, - la figure 3 représente un schéma synoptique d'un des modules conforme à l'invention, - la figure 4 montre un exemple de configuration réalisable avec un module de l'invention, - les figures Sa, 5b, 5c et 5d illustrent quatre traitements pouvant être obtenus avec la configuration de la figure 3, - la figure 6 montre un autre exemple de configuration réalisable avec un module de l'invention, cette configuration correspondant à un générateur de formes d'ondes, - la figure 7 représente quatre fonctions possibles pouvant être obtenues avec la configuration de la figure précédente, - la figure 8 illustre une autre configuration dérivée de celle de la figure 5 et permettant d'obtenir une modulation d'amplitude, - la figure 9 représente encore une autre configuration faisant intervenir un registre à décalage, - la figure 10.montre l'organisation de la mémoire d'adresses, - la figure l1 représente trois diagrammes illustrant l'adressage du système, - les figures 12a, 12b et 12c représentent à titre d'exemple d'application des circuits permettant de réaliser une fonction de filtrage. Selon une technique connue, la plupart des circuits du processeur de l'invention sont rassemblés sur des cartes. Celles-ci sont rassemblées dans un tiroir standardisé placé dans une baie. Cette baie contient également une alimentation 7,5 V servant à commander des régulateurs 5V implantés sur chaque carte. La figure 2 représente schématiquement l'organisation pratique des circuits du processeur et précise les liaisons entre ces circuits. Tel que représenté le processeur comprend huit cartes identiques de traitement, référencées de 101 à 108, l'ensemble formant un moyen 60 de traitement. La mémoire-tampon 50 est disposée sur une neuvième carte 109. L'unité de gestion 30 des entréessorties ainsi que le circuit 70 de gestion sont groupés sur une carte supplémentaire 110. Enfin, le circuit 40 de couplage avec l'ordinateur est disposé sur une onzième carte 111. Les cartes de traitement 101 à 108 ainsi que les cartes 109 et 110 sont reliées par un bus d'inter connexion 81 composé d'un bus récepteur 82, d'un bus émetteur 83 et d'un bus de données 84. Par ailleurs, toutes les cartes sont reliées par un bus-système 85 (bus S) composé d'un bus de sélection 86, d'un bus d'adresses 87, d'un bus d'adresses de formes d'ondes 88 et d'un bus de données 89. La communication entre le calculateur et les différentes cartes, via la carte de couplage 40, s'opère comme suit : un adressage hiérarchisé permet de choisir : - une carte parmi 10, (de 101 à 110) par décodage, via le bus 86 de sélection, - une mémoire dans la carte sélectionnée, hormis la mémoire de formes d'ondes, par la partie haute du bus d'adresses 87, - une position dans la mémoire sélectionnée, par la partie basse du bus d'adresses si. Les données sont véhiculées par le bus bidi rectionnel de données 89. Les mémoires de formes d'ondes des cartes de traitement sont adressées par le bus d'adresses 88 issu d'une logique particulière implantée dans la carte 50. La communication entre cartes est régie par - le bus émetteur 83 qui sélectionne la carte émet teur, - le bus récepteur 82 qui sélectionne la ou les cartes réceptrices, - le bus de données 84 véhiculant les données. Avant de décrire plus en détail les cartes de traitement 101 à 108, quelques indications seront données sur la structure des cartes 109 à 111 qui leur sont associées. La carte 109 tout d'abord contient une mémoire. de lecture-écriture, à stockage permanent, d'une capacité de 16 K mots de 16 bits (K 3 1024), assurant la liaison entre le processeur et les dispositifs placés sur le bus système 85 (bande magnétique, disque, etc... > Cette mémoire-tampon est chargée de stocker deux types d'informations, des données et exceptionnellement des configurations fonctionnelles : les données sont, soit des informations produites par le processeur, qui doivent être stockées en vue d'une utilisation ultérieure ; soit des informa tions destinées au processeur en vue d'un traite ment ; - les configurations fonctionnelles sont des éléments de programmation permettant de créer les différentes structures fonctionnelles des cartes ; celles-ci transitent habituellement directement de l'ordina teur 10 vers la mémoire concernée, via le bus 85 ; ce qui permet de créer et d'utiliser une bibliothè que de structures fonctionnelles. Un exemple tiré du domaine électro-acoustique peut être donné : après avoir obtenu une configuration orchestrale, la programmation définissant celle-ci peut être mémorisée en vue de sa réutilisation. D'autre part, l'oeuvre produite peut également être mémorisée sous forme de données. Une oeuvre ainsi préenregistrée peut servir de données de base à un traitement ultérieur. Quant à la carte 110, elle comprend : - des circuits d'horloge assurant la génération de si gnaux d'interruption, - une logique d'arbitrage du bus d'interconnexion 81 et sa mémoire de signal associée, le tout consti tuant le circuit de gestion 70, - l'unité de gestion des entrées-sorties assurant la liaison entre le processeur et l'extérieur. Les circuits d'horloge sont des compteurs programmables qui permettent de déterminer des intervalles de temps à la fin desquels une requête d'intervention au calculateur (interruption) l'oblige à suspendre la tâche qu'il effectuait,-afin de modifier des éléments du traitement en cours dans le processeur. Dans le domaine ¯ électro-acoustique par exemple, les principales applications des circuits d'horloge sont, l'élaboration d'enveloppes pour l'évolution des amplitudes et des fréquences des oscillateurs, l'évolution des fréquences de coupure de filtres, etc.... La logique d'arbitrage permet le transfert de données entre une carte et d'autres parmi les huit cartes de traitement, la carte mémoire 50 et la carte 110 elle-m8me, ceci par l'intermédiaire du bus d'interconnexion 81. Les interconnexions à réaliser sont spécifiées par le contenu d'une mémoire de 512 mots de 14 bits préalablement chargée par le calculateur. L'unité de gestion des entrées-sorties gère la communication avec l'extérieur, soit sous forme numérique (entrées 25, sorties 26 de la figure 1), soit sous forme analogique (entrées 21, sorties 23) ; dans ce cas, elle prend en charge la gestion des convertisseurs analogiques-numériques et numériques-analogiques placés à l'extérieur. En ce qui concerne la carte d'interface 40, elle assure la fonction classique de couplage entre le processeur et l'ordinateur choisi. Une partie de celle-ci est invariante, puisqu'elle crée le bus système 85, alors qu'une autre partie est spécifique de l'ordinateur utilisé et donc doit changer avec celuici. Les cartes de traitement vont maintenant être décrites. Chaque carte communique avec l'ordinateur et sa périphérie par l'intermédiaire de la carte 40, à l'aide du bus système 85, soit directement, soit par l'intermédiaire d'une mémoire-tampon. Elle peut aussi échanger les informations traitées avec les autres cartes par l'intermédiaire du bus d'interconne xion ¯ 81. La structure fonctionnelle de la carte de traitement est illustrée par la figure 3. Les éléments fonctionnels communiquent entre eux par l'intermédiaire d'un bus A et d'un bus B selon une structure dite "pipe-line". Cette structure permet d'accroitre la vitesse de traitement. Elle consiste en une série de sections, chargées chacune d'effectuer une partie du traitement, les informations se succédant dans les sections comme le fait un fluide dans une canalisation. Les éléments fonctionnels constituant la carte comprennent : a) - une unité arithmétique 115 pouvant effectuer, sur des nombres X et Y, des opérations arithmétiques telles que X+Y, X-Y, Y-X, par exemple sur 24 bits ; b) - un multiplicateur rapide 120 réalisant l'opéra tion XxY sur 16 bits en entrée, avec 24 bits en sortie c) - un registre à décalage 130 permettant de réaliser des interpolations linéaires en conjugaison avec l'unité arithmétique 115 et le multiplica teur 120 d) - une mémoire de fonctions 140, par exemple de 64 Kmots de 16 bits, contenant les échantillons des formes d'ondes que l'on désire créer. Cette mé moire peut être divisée au maximum en 64 blocs de 1 Kmot, ce qui permet de disposer de 64 formes d'ondes différentes; e) - une mémoire données 150, par exemple de 512 mots de 24 bits, contenant les informations traitées par l'unité 115, le multiplicateur 120 et conte nant aussi des adresses pour la mémoire de fonc tions 140 ; l'ordinateur ainsi que les autres cartes du processeur peuvent avoir accès à cette mémoire ; f) - une mémoire d'adresses 160, par exemple de 1024 mots de 9 bits, permettant l'exploration séquen tielle de la mémoire de données 150 pendant le déroulement du microprogramme ; cette explora tion est commandée par un compteur 161 relié à un multiplexeur 162 ; par ailleurs la mémoire d'adresses 160 est reliée à la mémoire de données 150 par un multiplexeur d'adresses 170 ; g) - une mémoire de microprogrammes 180, par exemple de 512 mots de 32 bits, contenant jusqu'à 16 con figurations de fonctionnement pour la carte ; chaque configuration, constituée par 32 mots de 32 bits, permet l'interconnexion des différents éléments de la carte et constitue le micropro gramme exécuté ; (un microprogramme est la suite des opérations à effectuer pour exécuter une ins truction > h) - chaque carte peut comprendre également deux mé moires-tampon 181, 185 disposées respectivement entre le bus A et le bus d'interconnexion 81 et le bus B et le bus système 85. L'ensemble de ces éléments, interconnectés selon le microprogramme en cours, peut échanger des informations (données ou adresses) avec les autres cartes du système, via le bus d'interconnexion 81 ou avec l'extérieur via le bus système 85. Les éléments décrits ci-dessus peuvent être utilisés séparément ; toutefois, c'est par leur assem blage en structures fondamentales, réalisé par microprogrammation que se trouvent matérialisés les éléments fonctionnels du traitement à effectuer. Parmi un large éventail de possibilités, les figures 4, 5, 6, 8, 9 représentent quelques structures fondamentales parmi les plus utilisées dans le traite ment-du-signal. Chacune de ces structures permet de réaliser plusieurs types de traitement. La structure de la figure 4 tout d'abord montre un multiplicateur 120 à deux entrées e1 et e2, une unité arithmétique 115 dont une entrée e3 est reliée au multiplicateur 120 et dont une autre entrée est notée e4. Cette unité délivre un signal sur une sortie s. Selon les signaux appliqués aux entrées el, e2 et e4, on obtient différentes fonctions comme le montrent, de manière non exhaustive, les schémas des figures 5a, 5b, 5c et 5d. Selon le schéma de la figure 5a, deux nombres a. et bi (i représentant un rang dans une suite) sont appliqués sur les entrées du multiplicateur 120 et l'entrée e3 de l'unité arithmétique 115 est fixée à 0. La sortie de cette unité délivre un nombre noté sisl égal au produit de ai par bi : Si 1 aibi Selon le schéma de la figure 5b, l'entrée e1 reçoit un nombre ai, l'entrée e2 un signal unitaire 1, et l'entrée e4 un nombre bi. La sortie s délivre alors un signal somme : si+1 = ai + bi Selon le schéma de la figure 5c, les entrées Selon i Selon le schéma de la figure 5c, les entrées e1 et e2 reçoivent des nombres ai et bi, et l'entrée e4 est reliée à la sortie s. On obtient alors un signal de sortie sil de la forme : a i b i ai b ce qui permet le calcul d'expressions du type : agbg + albl + a2b2 + Enfin, selon le schéma de la figure 5d, l'entrée e1 est rebouclée sur la sortie s, l'entrée e2 reçoit un signal x, et l'entrée e4 un signal ai. Le signal de sortie est de la forme si = Si X + ai ce qui permet le calcul de polynomes par la formule récurrente si+1 = (si-1 x +ai-1) x + ai La figure 6 illustre une configuration faisant intervenir l'unité arithmétique 115 qui travaille avec trois entrées e3, e4, e5 et la mémoire de formes d'ondes 140. Cette dernière contient des échantillons des fonctions à reproduire. Cette mémoire comprend une entrée de sélection e6 et une seconde entrée e7 qui correspond à une adresse. Cette entrée est reliée à la sortie s de l'unité 115. La mémoire 140 possède par ailleurs une sortie t. Une forme d'onde particulière est obtenue, d'une part en choisissant un signal approprié sur l'entrée e6 et, d'autre part, en explorant séquentiellement la mémoire afin de placer sur la sortie t la suite des échantillons correspondants. La figure 7 re présente quatre fonctions possibles. Le mode d'exploration détermine l'occurrence temporelle de la forme d'onde. Ainsi, une incrémentation simple de l'adresse de la mémoire 140 fera apparaitre, dans le cas de l'onde n0 1, une sinusoïde dont la fréquence est liée à l'incrément (plus l'incrément est grand, plus la fréquence est élevée). Un incrément variable permet de réaliser une modulation de fréquence. Sur les entrées de l'unité 115, on peut présenter la phase initiale Yi (entrée e3) la fréquence F (entrée e4), le pas de fréquence #F (entrée e5) et les paramètres de la modulation de fréquence. Dans ce cas, la sortie s délivrant Sisl est rebouclée sur l'entrée e3. Le schéma de la figure 8 correspond à celui de la figure 6- (unité arithmétique 115 et mémoire de formes d'ondes 140) avec, en plus, un multiplicateur 120 relié à la sortie de la mémoire 140. Par ailleurs, ce multiplicateur reçoit sur son entrée e2 un signal A permettant d'obtenir une modulation d'amplitude. Le signal de sortie noté SS1 délivré par le multiplicateur 120 peut être mélangé à un autre signal, noté SS2' par une seconde unité arithmétique 115' recevant ces deux signaux sur ses entrées e3 et e. La figure 9 représente une variante dans laquelle le circuit de la figure 6 est complété par le registre à décalage 130 dont l'entrée es est reliée à la sortie s de l'unité 115. Ce circuit permet de réaliser une interpolation linéaire en utilisant les bits de poids faible, (en deçà du 16ème, par exemple, pour 24 bits manipulés pendant le calcul). Naturellement, plusieurs configurations fonctionnelles telles que celles qui viennent d'être décrites peuvent être regroupées par microprogrammation sur une même carte. Pour ce qui est du séquencement du système, il est obtenu par une horloge dont la fréquence est, selon un mode de réalisation utilisé par le demandeur, de 16,384 MHz. Dans ce cas, un cycle d'instruction élémentaire, ou microcycle a une durée de 61,035 ns. Durant chaque microcycle, la mémoire du microprogramme délivre une microinstruction qui établit la configuration fonctionnelle correspondant à l'action exécutée durant ce microcycle. Les opérandes sur lesquelles travaillent les microinstructions ont leurs adresses dans la mémoire d'adresses 160. Les 32 microinstructions, correspondant aux 32 mots de la mémoire de microprogrammes 180, forment un cycle intermédiaire de durée 1,95 çs. Le microprogramme, dans un cycle complet de durée 62,5 us est exécuté 32 fois avec des données différentes, ce qui implique que la mémoire d'adresses 160 ait une taille de 32x32 mots, soit 1024 mots. L'organisation de cette mémoire est illustrée sur la figure 10. Les 32 blocs de la mémoire 160 sont référencés respectivement : Ao pour celui qui contient les adresses relatives au cycle O, A1 pour celui qui contient les adresses relatives au cycle 1, etc... et A31 pour le dernier. L'exploration des adresses est illustrée sur la figure 11, qui comprend trois diagrammes temporels : le premier, a, représente les impulsions d'horloge de microprogramme H#P, le second, b, les adresses explorées dans la mémoire de microprogrammes 180, soit AuP, et le troisième, c, les adresses de la mémoire d'adresses 160, soit AMA. On remarque que les structures fondamentales créées durant un cycle intermédiaire sont obtenues 32 fois durant le cycle complet. Par exemple, il est possible de créer sept muîtiplieurs-additionneurs du type de la figure 4 du rant un cycle intermédiaire, soit 7x32 = 224 multi plieurs-additionneurs travaillant sur des données distinctes durant un cycle complet. La période d'échantillonnage du traitement du signal est dans ce cas de 62,5 ys, soit une fréquence d'échantillonnage de 16000 Hz, ce qui correspond à une bande passante de signal traité de 8000 Hz. (Le théorème de Shannon montre que la bande pesante maximale d'un signal échantillonné est la moitié de la fréquence d'échantillonnage). Pour traiter des signaux de bande passante supérieure, il faut répéter à l'intérieur du cycle complet, le microcycle utilisé. il est ainsi possible d'échantillonner à des fréquences de 32 kHz, 64 kHz, 128 kHz, 256 kHz, 512 kHz, soit des bandes passantes de 16 kHz, 32 kHz, 64 kHz, 128 kHz, 256 kHz. Toutefois, le nombre de structures fondamentales créées est réduit dans le même rapport. A titre d'exemple d'application une configuration réalisant une fonction complexe de filtrage va maintenant être décrite. Un système du second ordre satisfait à l'équation différentielle : S" + S' W/Q + Swê = Ewê Si E est une entrée on peut montrer que S est une sortie correspondant à un filtrage passe-bas, S'w/Q une sortie correspondant à un filtrage passe-bande, et Sn une sortie correspondant à un filtrage passe-haut. La lettre w désigne une pulsation d'accord et Q un coefficient de surtension. Cette équation peut être résolue à partir du- circuit analogique de la figure 12a. Ce circuit comprend deux intégrateurs 201 et 202, deux multiplicateurs 203 et 204 et un additionneur-soustracteur 205 à trois entrées. Les grandeurs d'entrée sont les signaux Q, appliqués sur le multi 2 plicateur 203, X sur le multiplicateur 204 et E sur une entrée positive de l'additionneur-soustracteur 205. Les intégrateurs peuvent être réalisés numériquement à l'aide d'additionneurs-accumulateurs par un simple rebouclage, ce qui conduit au schéma de la figure 12b qui résout l'équation S" ¯ S' (E-S) X - SQ Q plus propre à fournir les trois sorties désirées. Le circuit représenté comprend quatre multiplicateurs 211, 212, 213 et 214 et quatre additionneurs 221, 222, 223 et 224. Ce schéma peut être réalisé à l'aide de l'élément fonctionnel de la figure 4 et conduit au schéma de la figure 12c qui comprend quatre ensembles 231, 232, 233 et 234. Pour illustrer les possibilités du système qui vient d'être décrit, quelques exemples de réalisation de cartes spécialisées vont être inventoriés. EXEMPLE 1 Une carte rassemble l'équivalent de 128 oscillateurs indépendants à deux entrées en fréquence. En utilisant huit cartes semblables, il est possible de disposer de 1024 oscillateurs. Ces 128 oscillateurs sont obtenus par multiplexage temporel : - quatre oscillateurs sont créés durant un cycle in termédiaire (déroulement complet du microprogram me), - la sucession des 32 cycles intermédiaires formant le cycle complet conduit au total de 128. EXEMPLE 2 Une carte représente l'équivalent de 224 multiplicateurs-additionneurs (32 cycles de sept multiplicateurs-additionneurs) pouvant réaliser jusqu'à 56 filtres du deuxième ordre. EXEMPLE 3 Une-#carte représente l'équivalent, simulta nément de : - 64 oscillateurs à plus d'une entrée, permettant de réaliser jusqu'à 32 interpolateurs ou 32 retards va riables, - 64 opérateurs linéaires (multiplicateurs-addition neus) permettant par exemple de réaliser 16 filtres universels du deuxième ordre (passe-haut, passe bas, passe-bande) ou des filtres d'ordres plus éle vés, - 32 unités logiques, - et 32 oscillateurs d'écriture dans la table mémoire de fonctions. EXEMPLE 4 Une carte contient les circuits aptes à effectuer la transformée de FOURIER rapide d'un signal selon les algorithmes de COOLEY et SANDE. Les résultats suivants ont été obtenus : - le signal étant échantillonné à la fréquence de 16000 Hz, donc une bande passante de 8000 Hz, il est possible de traiter 512 points si les valeurs sont réelles, ou 256 dans le cas de valeurs complexes. Ainsi, le signal peut avoir une durée de EMI16.1 d'une finesse d'analyse de 30 Hz. en échantillonnant le signal à la fréquence de 512 kHz, donc une bande passante de 256 kHz, en traitant le même nombre de points, la durée est ra menée à 1 ms, d'où une finesse d'analyse de 1000 Hz. Les valeurs intermédiaires sont évidemment possi bles. Cette opération met en jeu environ un quart de la carte, la partie restante pouvant effectuer d'autres opérations. il est possible d'utiliser 8 cartes analogues, ce qui permet de traiter plusieurs signaux simultanément et ainsi de calculer des transformées de FOURIER rapides multidimensionnelles. Le logiciel associé au système qui vient d'être décrit doit être appréhendé à divers niveaux : - le logiciel de configuration du système : micropro grammation et macroprogrammation, - le logiciel d'utilisation. Pour le logiciel de configuration du systè- me, la microprogrammation s'effectue à deux niveaux : - l'écriture de la mémoire de microprogrammes détermi ne des structures fondamentales telles que celles présentées sur les figures 4, 6, 8, 9. Pour un champ d'application donné, cela conduit à la détermination une fois pour toutes d'un certain nombre de modèles qui seront les éléments de base utilisés par la sui te dans ce type d'application ; - l'écriture de la mémoire d'adresses détermine les liaisons entre les structures fondamentales du modè le pour effectuer un traitement particulier à l'in térieur du champ d'application. Les modèles étant créés, l'utilisation du système consiste essentiellement à réaliser les interconnexions, c'est-à-dire l'écriture de la mémoire d'adresses. C'est pourquoi un logiciel évolué peut être mis au point pour faciliter cette tâche. I1 peut exister plusieurs versions de ce logiciel, dit logiciel d'interconnexion, qui s'adressent à des utilisateurs distincts. Certains restent près du matériel (utilisation des grandeurs en octal, définition des mémoires utilisées, etc...) d'autres veulent ignorer la machine (utilisation de noms de variables mnémoniques, introduction des fréquences en Hz, etc...). Tous ces logiciels sont ¯transportables", c'est-à-dire qu'ils peuvent fonctionner sans modification sur plusieurs ordinateurs différents. Seules quelques instructions en assembleur, pour gérer les ordres d'entrées-sorties, sont à reprendre. Quant au logiciel d'utilisation du système, il est défini par cette utilisation, en fonction du traitement à effectuer. Après cette description, on voit que le processeur de l'invention présente les caractéristiques suivantes : il s'agit d'un périphérique intelligent et autonome. Pendant son fonctionnement, l'ordinateur hôte peut être utilisé à d'autres tâches, telles que la gestion des modes de fonctionnement du système, ou tout traitement préparatoire ne s'effectuant pas en temps réel, les traitements en temps réel étant entièrement pris en charge par le processeur. Le concept de base dans ce système est la multiplication apparente des structures fondamentales, par multiplexage temporel. Le système de l'invention est apte à traiter numériquement des problèmes complexes dans les domaines linéaire et non linéaire, ce qui en fait un outil tout indiqué dans le traitement numérique du signal et de l'information. Les principales fonctions pouvant être remplies sont les suivantes - génération de signaux pour toutes les méthodes de synthèse connues, - transformée de FOURIER réciproque (obtention du si gnal à partir de son spectre), - mesure, - analyse de spectre, - détermination de fonctions de transfert, - mesure des propriétés statiques, - détermination des transformées de FOURIER (trans formation de FOURIER rapide), - corrélation, convolution, déconvolution, - filtrage, - intégration cohérente, - égalisation, - simulation en temps réel et émulation, - filtrage et synthèse par codage linéaire prédic tif (LPC).

Claims: REVENDICATION Processeur numérique de signal en temps réel, destiné à être couplé à un ordinateur (10), ce processeur comprenant un circuit (20) d'entrées-sorties, une unité (30) de gestion des entrées-sorties, un circuit (40) de couplage avec l'ordinateur, une mé moire-tampon- < 50), des moyens (60) de traitement numérique de signal, un circuit (70) de gestion des moyens (60) de traitement, ce processeur étant caractérisé en ce que les moyens (60) de traitement numérique de signal sont constitués par une pluralité de modules de traitement (101, 102, 103...) interconnectés, chaque module comprenant : : - une unité arithmétique (115), - un multiplicateur rapide (120), - un registre à décalage (130), - une mémoire de fonctions (140), - une mémoire de données (150) adressable contenant toutes données manipulées par les différentes fonc tions du processeur, - une mémoire d'adresses (160) exploitée séquentiel lement et permettant une exploration de la mémoire de données, - une mémoire de microprogrammes (180), chaque micro programme contenant des instructions aptes à inter connecter l'unité arithmétique tell0), le multipli cateur (120), le registre à décalage (130), la mémoire de formes d'ondes (140) selon une configura tion particulière.

Inventors: DI GIUGNO, GIUSEPPE
Applicants: I.R.C.A.M.  INSTITUT DE RECHERCHE ET DE COORDINATION ACOUSTIQUE/MUSIQUE
Application year: 1982
Main classification: G06F15
IPC codes: G06F15