BE898134A - Equipement de traitement de donn es et syst&me de reconnaissance de parole l'utilisant. - Google Patents

Equipement de traitement de donn es et syst&me de reconnaissance de parole l'utilisant. Download PDF

Info

Publication number
BE898134A
BE898134A BE2/60244A BE2060244A BE898134A BE 898134 A BE898134 A BE 898134A BE 2/60244 A BE2/60244 A BE 2/60244A BE 2060244 A BE2060244 A BE 2060244A BE 898134 A BE898134 A BE 898134A
Authority
BE
Belgium
Prior art keywords
data
shared
processors
bus
transfer
Prior art date
Application number
BE2/60244A
Other languages
English (en)
Inventor
G Vensko
L Carlin
J C Potter
A R Smith
Original Assignee
Int Standard Electric Corp
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
Application filed by Int Standard Electric Corp filed Critical Int Standard Electric Corp
Publication of BE898134A publication Critical patent/BE898134A/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/285Memory allocation or algorithm optimisation to reduce hardware requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

L'invention comprend au moins deux ordinateurs couplées par un bus de controle à distance, chacun ayant une mémoire partagée qui lui est associée et chacun permettant d'accomplir un traitement local des données emmagainées dans la mémoire partagée. Ils comprennent en outre des moyens de transfert de données associés avec chacun des ordinateurs et des mémoires partagées et qui leur sont couplés pour transférer au moins une partie des données entre les mémoires partagées par un accès direct aux mémoires. Ce transfert est accompli pendant et sans interférence avec le traitement local des parties restantes des données présentes dans les mémoires partagées.

Description


   <Desc/Clms Page number 1> 
 



   EQUIPEMENT DE TRAITEMENT DE DONNEES ET SYSTEME DE
RECONNAISSANCE DE PAROLE L'UTILISANT La présente invention revendique la priorité d'une demande de brevet déposée aux Etats-Unis d'Amérique le 3 novembre 1982 sous le NO 439, 018 au nom de : George VENSKO, Lawrence CARLIN, John Charles POTTER, Allen Richard SMITH. 

 <Desc/Clms Page number 2> 

 



   L'invention se rapporte à un système dispersé pour le traitement de données et à une méthode pour transférer des données entre une pluralité d'ordinateurs. Plus particulièrement, l'invention se rapporte à l'utilisation de l'équipement et de la méthode pour une reconnaissance continue de la parole en temps réel en utilisant un vocabulaire substantiel. 



   Les systèmes de reconnaissance automatique de la parole fournissent des moyens permettant une interface entre les ordinateurs et d'autres machines suivant un mode de communication naturel et facile. Lorsque cela est requis, cela permet aux opérateurs de tels ordinateurs et machines d'y inscrire des données, d'obtenir des informations et de contrôler des systèmes lorsque leurs mains et leurs yeux sont occupés, que cela se passe dans le noir ou lorsqu'ils ne peuvent demeurer en permanence au terminal. En outre, des machines utilisant la voix normale pour les informations d'entrée nécessitent beaucoup moins d'entraînement pour l'utilisateur que ce qui est demandé par les systèmes basés sur des claviers, commutateurs, boutons poussoirs et autres dispositifs mécaniques complexes. 



   Une approche connue pour la reconnaissance automatique de la parole et plus particulièrement de mots isolés comporte ce qui suit : échantillonnage périodique d'un signal d'entrée de parole audio filtré par un filtre passe-bande (BPF) pour créer des trames de données et ensuite, un retraitement de cellesci pour les convertir en des trames retraitées de valeurs 

 <Desc/Clms Page number 3> 

 paramétriques qui conviennent le mieux pour le traitement de la parole ; emmagasinage d'une pluralité de gabarits (chaque gabarit est une pluralité de trames antérieurement créées et traitées, dont les valeurs paramétriques représentent un mot et qui lorsqu'elles sont prises ensemble forment le vocabulaire de référence du système de reconnaissance automatique de la parole) ;

   et comparaison des trames traitées de parole avec les gabarits suivant un algorithme prédéterminé tel que l'algorithme de programmation dynamique (DAP) décrit dans l'article de F. Itakura, intitulé"Minimum prediction residual principle applied to speech recognition", IEEE Trans. Acoustics, Speech and Signal Processing, Vol. ASSP-23, pp 67-72, février 1975, pour trouver le meilleur chemin ou la meilleure adaptation pour l'alignement dans le temps entre un gabarit donné et le mot parlé. 



   Des systèmes de reconnaissance de mots isolés tels que ceux esquissés ci-dessus imposent à l'usager une pause artificielle entre chaque mot ou phrase. Cette exigence est souvent trop restrictive dans un environnement où la charge de travail est élevée et souvent pénible. Un tel environnement exige un débit de parole continu suivant le mode naturel. 



  Cependant les problèmes liés à l'identification des limites des mots dans la reconnaissance continue de la parole, associée avec les exigences d'un vocabulaire élargi et la nécessité d'un traitement d'un controle de syntaxe pour identifier seulement des phrases prédéterminées significatives, nécessitent un traitement supplémentaire et plus complexe. 



   Il est souhaitable par conséquent de fournir   d exi-   gences de traitement   additionnemoe   arc un équipement peu important et d'un coût peu élevé et une méthode qui est facilement adaptable à l'évolution pour accomoder des exigences de vocabulaire et de syntaxe plus grandes tout en fournissant un traitement sûr et approchant celui en temps réel. 

 <Desc/Clms Page number 4> 

 



   En résumé, un équipement et une méthode de traitement de données pour accomplir une fonction prédéterminée telle qu'une reconnaissance continue de la parole sont la base de l'invention. Ils comprennent au moins deux ordinateurs couplés par un bus de contrôle à distance, chacun ayant une mémoire partagée qui lui est associée et chacun permettant d'accomplir un traitement local des données emmagasinées dans la mémoire partagée. Ils comprennent en outre des moyens de transfert de données associés avec chacun des ordinateurs et des mémoires partagées et qui leur sont couplés pour transférer au moins une partie des données entre les mémoires partagées par un accès direct aux mémoires. Ce transfert est accompli pendant et sans interférence avec le traitement local des parties restantes des données présentes dans les mémoires partagées. 



   Une reconnaissance continue de la parole est accomplie en convertissant continuellement les mots parlés en des trames de données paramétriques qui conviennent mieux pour un traitement subséquent de la parole. La conversion a lieu dans un ordinateur de données d'entrée. Un vocabulaire des mots devant être reconnu est emmagasiné comme gabarit dans au moins deux ordinateurs de gabarits. Des trames de données paramétriques sont transférées aux processeurs de gabarits pour être comparées avec les gabarits qui sont emmagasinés. Des données de gabarit sont redistribuées parmi les processeurs de gabarit avec chaque nouvelle trame de données paramétriques devant être traitée pendant que les trames antérieures de données paramétriques sont traitées par les processeurs de gabarit.

   Suivant les réalisations préférées, il y a au moins huit processeurs de gabarit et au moins trois cent mots de vocabulaire emmagasinés dans ceux-ci comme gabarit. 



   Les caractéristiques et buts de l'invention mentionnés ci-dessus ainsi que d'autres deviendront plus claires en se référant à la description détaillée qui fait suite et prise en 

 <Desc/Clms Page number 5> 

 conjonction avec les dessins qui l'accompagnent, dans lesquels :
La Fig. 1 est un diagramme sous forme de blocs d'une réalisation préférée de la présente invention comprenant une pluralité de processeurs et d'équipement de transfert de données ;
La Fig. 2 est un diagramme sous forme de blocs montrant en plus de détails la partie de l'invention de la Fig. 1 se rapportant à la série de filtres passe-bande ;
La Fig. 3 est une table donnant les caractéristiques de filtrage de la partie filtre passe-bande de la Fig. 2 ;

  
La Fig. 4 est un diagramme sous forme de blocs montrant plus de détails d'un processeur et d'un équipement de transfert de données de la Fig. 1 ;
La Fig. 5 est un diagramme de temps montrant les évènements principaux pour le processeur utilisé dans la présente invention et les signaux de demande minutés pour l'accès à la partie de l'équipement de la Fig. 4 concernant le bus de données partagé ;
La Fig. 6 est un diagramme de temps dans le cas d'un processeur interrompant un autre à l'aide de leur section de transfert de données ;
La Fig. 7 est un diagramme de temps d'une partie de circuit DMA d'un processeur esclave et d'un équipement de transfert de données commandé par le processeur maître et l'équipement de transfert de données ;

  
La Fig. 8 est un diagramme de temps pour un transfert de données par accès direct à la mémoire (DMA) entre une source et un processeur de destination de la Fig. 1 ;
La Fig. 9 est un diagramme sous forme de   blocs d'un   circuit de décodage d'adresse du contrôleur partagé de la Fig. 4 ;
La Fig. 10 est un diagramme sous forme de blocs montrant une partie du contrôleur partagé de la Fig. 4 pour générer des requêtes de partage du bus de données sur une base 

 <Desc/Clms Page number 6> 

 prioritaire ;
La Fig. 11 est un diagramme sous forme de blocs d'une partie du contrôleur partagé pour synchroniser les demandes sur le bus de données partagés avec l'horloge locale du processeur associé avec ce dernier ;
La Fig. 12 est un diagramme de temps de l'opération de la Fig. 11 ;

  
La Fig. 13 est un diagramme sous forme de blocs d'une partie du contrôleur partagé qui génère des signaux d'horloge et d'autorisation pour les dispositifs couplés au bus de données partagé de la Fig. 4 ;
La Fig. 14 est un diagramme sous forme de blocs d'une partie du contrôleur partagé qui génère des signaux de validation de données lorsque des données sont transférées du bus de données partagé pour être transmise par le bus de contrôle à distance ;
La Fig. 15 est un diagramme sous forme de blocs du contrôleur pour le contrôle à distance faisant partie de la Fig. 4 ;
La Fig. 16 est un diagramme sous forme de blocsd'une partie du contrôleur partagé pour établir les signaux de source DMA et de commande de destination ;

  
La Fig. 17 est un diagramme sous forme de blocsd'une partie du contrôleur partagé montrant le compteur DMA et son circuit de commande. 



   La Fig. 1 est un diagramme sous forme de blocsd'une réalisation préférée d'un équipement à processeurs distribués particulièrement adapté pour un équipement de reconnaissance continu de parole désigné généralement par 100. Il comprend des moyens de conversion de parole désignés généralement par 102 qui comportent un microphone 104, tel que le modèle SM10 de Shure Brothers, Inc. ; le circuit préamplificateur 106 tel que le modèle PMM-2 de Bogen Co pour amplifier l'entrée 

 <Desc/Clms Page number 7> 

 audio provenant du microphone ; une série de circuits de filtres passe-bande 108, tele que décrit en plus de détails à la Fig. 2, pour fournir un échantillonnage numérique de spectre de la sortie audio du circuit de préamplification 106 ;

   et un processeur d'entrée 110 pour traiter les échantillons de spectre afin de les convertir en des données paramétriques convenant mieux à un traitement subséquent de la parole. L'équipement 100 comprend en outre une pluralité de processeurs de gabarit tels que 130, 140 and 150 qui emmagasinent des mots antérieurement traités ou des portions de parole appelées gabarits, ces processeurs fonctionnant pour comparer des données paramétriques du processeur d'entrée 110 avec les gabarits emmagasinés suivant un algorithme prédéterminé et pour emmagasiner les résultats ; un processeur maître 160 pour une analyse de syntaxe des résultats reçus de la pluralité des processeurs de gabarit, pour commander le transfert de données parmi les processeurs 110,130, 140 et 150, et pour accomplir d'autres fonctions s'étendant à l'ensemble du système ;

   un bus de protection à distance 170 pour fournir des signaux pour l'écoulement et la commande des données parmi les différents processeurs ; et des moyens de transfert de données 180,182, 184,186 et 188 respectivement associées avec chacun des processeurs 110,130, 140,150 et 160. 



   La Fig. 1 présente aussi les caractéristiques additionnelles suivantes : connexion du processeur maître 160 à un ordinateur hôte ou mémoire de masse par le bus 190 ; une connexion vers un terminal video 192 et une connexion vers un synthétiseur de parole 194 tel que le DT1000 Digitalker de National Semiconductor, et le haut-parleur 196. 



   En se référant maintenant à la Fig. 2, un diagramme sous forme de blocs et plus détaillé de la série de filtres passe-bande 108 est montré. La sortie du préamplificateur 106 

 <Desc/Clms Page number 8> 

 sur le conducteur 112 de la Fig. 1 est transmise vers un étage d'amplificateur d'entrée 200 qui a une largeur de bande de 3 db à 10 kHz. Ceci est suivi d'un amplificateur d'accentuation 202 à 6   db/octave   ayant des fréquences sélectionnables de 500 ou 5000 Hz. Ceci est une pratique courante pour fournir plus de gain aux fréquences élevées par rapport aux fréquences basses puisque les premières sont généralement plus faibles pour l'amplitude   des données   de parole.

   A la sortie de l'amplificateur 202, le signal est divisé et est fourni aux entrées de filtre anti-alias 204 (avec une fréquence de coupure de 1,4 kHz) et 206 (avec une fréquence de coupure de 10,5 kHz). Ceux-ci sont fournis pour éliminer une reproduction inverse qui peut résulter suite à léchantillonnage subséquent. 



   Les sorties des filtres 204 et 206 sont amenées respectivement   auccircuits   de filtre passe-bande BPF 208 et BPF 210. Ils comprennent respectivement les canaux 1-9 et 10-19 Chacun des canaux 1-18 contient un filtre d'une octave. Le canal 19 contient un filtre d'une octave complète. 



  Les filtres de canaux sont réalisés d'une manière conventionnelle en utilisant les dispositifs à capacitance commutée du type R5604 et R5606 de Reticon. La Fig. 3 donne la fréquence d'entrée d'horloge, la fréquence centrale et une largeur de bande de 3 db pour les 19 canaux des filtres BPF 208 et 210. 



  Les fréquences d'entrée d'horloge requises pour ces derniers circuits sont générées de manière conventionnelle à partir d'un circuit générateur d'horloge 212 alimenté par une horloge 213 à 1,632 MHz. 



   Les sorties des circuits BPF 208 et 210 sont redressées, passées à travers un filtre passe-bas (fréquence de coupure à 30 Hz) et simultanément échantillonnées dans 19 circuits d'échantillonnage et de maintien (type LF398 de National Semiconductor) dans le circuit d'échantillonnage 214. 

 <Desc/Clms Page number 9> 

 



  Les 19 échantillons de canaux sont alors multiplexés par les multiplexeurs 216 et 218 (type DG506 de Siliconix) et convertis en une version numérique par le convertisseur 220 (log A/D) du type DF331 de Siliconix. Ce convertisseur a une sortie sérielle de 8 éléments binaires qui est convertie en un format   parâlèle   par l'enregistreur   série/parallèle   222 (type DM86LS62 de National Semiconductor) pour être envoyée au processeur d'entrée 110 par le bus 114. 



   Une horloge 224 de 2 MHz génère différents signaux pour le circuit 214, les multiplexeurs 216 et 218 et pour le convertisseur analogue/numérique 220. Une commande d'échantillonnage et de maintien est envoyée au   circuit 214   toutes les 10 millisecondes par un conducteur 215. Alors chacun des circuits d'échantillonnage et de maintien est multiplex séquentiellement (une fois toutes les 500 microsecondes) en réponse à un signal de sélection de cinq éléments binaires transmis par le bus 217 vers les circuits 216 et 218 à partir des circuits d'horloge 226. Quatre éléments binaires sont utilisés par chaque circuit tandis qu'un élément sélectionne le circuit. Il faut par conséquent 10 millisecondes pour convertir 19 canaux échantillonnés plus une référence de terre échantillonnée en une version numérique.

   Ces 20 signaux numériques sont appelés une trame de données. Une fois par trame, un signal d'état est généré à partir du circuit générateur d'horloge 226 et fourni au processeur d'entrée 110 par le conducteur 228. Il sert à synchroniser l'horloge du circuit de filtre 108 sur l'entrée du processeur d'entrée 110. Le circuit de générateur d'horloge 226 fournit en outre un signal d'exploration pour la disponibilité des données à (2 kHz) par le conducteur 230 vers ce processeur. 



  Ceci fournit 20 signaux d'interruption par trame au processeur 110. 



   Ce dernier est programmé d'une façon bien connue 

 <Desc/Clms Page number 10> 

 (voir le Advance Information Booklet No   ADl-814-Rl   de Motorola pour les unités de microprocesseurs à 16 éléments binaires de la série MC68000) pour accepter les trames de données (chacune comprenant 19 coefficients de filtre passe-bande) et réduire chaque trame à 16 coefficients. Alors, en utilisant un processus connu d'encodage à un taux de trame variable, des trames de données superflues, c'est-à-dire des trames de données similaires, sont éliminées afin de simplifier le traitement ultérieur. L'encodage à un taux de trame variable réduit le taux de trame de 100 trames par seconde (chacune correspondant à 10 millisecondes) à 50 trames/sec en moyenne. 



   Afin d'opérer une réduction supplémentaire pour le traitement, les 16 coefficients sont réduits à un nombre plus petit tel que 5 ou 10 en appliquant une transformation linéaire à chaque trame de coefficients devant être traitée ultérieurement. Une transformation bien connue est la transformation linéaire (mel-cosine) décrite dans les références suivantes (1) Davis, S. B., et Mermelstein, P., "Evaluation of Acoustic Parameters for Monosyllabic Word Identification", Journal Acoust. Soc. Am., Vol. 64, Suppl. l, pp.   S180-Sl81,   Fall 1978   (abrégé) ;   et (2) S. Davis et P.   Mermelstein,"Comparison   of Parametric Representations for Monosyllabic Word Recognition in Continuously Spoken Sentences", IEEE Trans. Acoust., Speech, Signal Proc., Vol. ASSP-28 pp. 



  257-366. 



   Le processeur d'entrée est également programmé pour faire la somme des 19 coefficients dans chaque trame de données reçue des circuits de filtre passe-bande 108 comme mesure d'amplitude de chaque trame. Un algorithme de détection d'énergie est alors appliqué pour déterminer le début et la fin d'une expression ou partie de parole. Lorsqu'une expression est détectée,   c'est-à-dire   que les résultats de l'algorithme de détection d'énergie indiquent qu'une nouvelle partie de parole 

 <Desc/Clms Page number 11> 

 a commencé, la trame de 5 ou 10 valeurs de cosinus-mel est marquée et un traitement subséquent est accompli. Il y a au moins une approche connue pour dériver un algorithme de détection d'énergie qui convient pour l'usage ci-dessus (voir à ce sujet L. F. Lamel, L. R. Rabiner, A. E. Rosenberg et J. G.

   Wilpon,"An Improved Endpoint Detector for Isolated Word Recognition", IEEE Trans. ASSP, Vol. 29, No 4, Aug., 1981). 



   Chaque mot du vocabulaire que l'équipement 100 est capable de reconnaître (suivant une syntaxe prédéterminée) peut être représenté par une séquence d'une pluralité de points pris d'un espace multidimensionnel à cosinus-mel décrit dans des articles de David et Mermelstein mentionnés ci-dessus. Par exemple, un vocabulaire de 300 mots peut être représenté par différentes séquences prises de 250 points prédéterminés. Chacun d'eux, après avoir subi une transformation cosinus-mel, est représenté par 5 ou 10 valeurs de cosinus-mel appelées un caractère. Il y a alors 250 caractères de 5 ou 10 valeurs de cosinus-mel emmagasinés dans une matrice de caractère.

   Chaque nouvelle trame inconnue de valeurs de cosinus-mel devant être reconnue est convertie en un vecteur de distance de caractère de 250 valeurs en calculant les distances euclidiennes entre la trame inconnue et   chacun dis   caractères dans la matrice. Ceci est effectué dans le processeur d'entrée 110. Les vecteurs de distance d'un caractère sont emmagasinés dans un tampon dans ce processeur jusqu'à ce qu'il soient transférés au processeur de gabarit par le processeur maître 160. 



   Un gabarit représente une partie de référence de la parole tel qu'un mot de vocabulaire construit à partir d'une pluralité de caractères. Chaque gabarit représente un mot du vocabulaire de l'équipement 100. Dans un système à 300 mots, il y aurait approximativement 300 gabarits. 



  Le nombre de gabarits emmagasinés dans un processeur et par 

 <Desc/Clms Page number 12> 

 et par conséquent le nombre de processeurs de gabarit requis dépend de la quantité de traitement requise et du délai de reconnaissance toléré. On peut estimer qu'avec un délai de reconnaissance en temps réel de 10%, c'est-à-dire un délai de reconnaissance de 0,3 secondes sur une expression longue de 3 secondes, de 3 à 4 processeurs de gabarit seront requis. 



   Chacun d'eux compare chaque vecteur de distance de caractère reçu du processeur d'entrée 110 par le bus de contrôle à distance 170 avec les gabarits qui lui ont été attribués en concordance avec l'algorithme de comparaison programmé dans la mémoire de programme du processeur de gabarit. Un algorithme convenant à cette fin est l'algorithme de programmation dynamique (DPA) auquel on s'est référé antérieurement ou des algorithmes dérivés. Puisque chaque vecteur de distance de caractère représente seulement de 10 à 30 millisecondes de temps de parole ce qui est beaucoup moins que le temps moyen nécessaire pour exprimer un mot comme représenté par un gabarit, plusieurs vecteurs de distance de caractère peuvent en conséquence être comparés à chaque gabarit.

   Un avantage du DPA est qu'il compense pour des variations allant jusqu'à 4 à 1 en ce qui concerne le temps nécessaire pour exprimer un mot. 



   Pendant la remise à zéro du système, le processeur maître va inscrire des gabarits dans les processeurs de gabarit par les moyens de circuit portant les nombres pairs 182-188 et le bus de contrôle à distance 170 de telle sorte qu'au début du processus de reconnaissance, la charge de calcul pour les processeurs de gabarit sera approximativement égale. Le processeur maître indique aussi à chaque processeur de gabarit lequel de ses gabarits doit être traité en concordance avec la syntaxe prédéterminée. 



   Le processeur maître, par les moyens de circuit portant les nombres pairs 180-186 et le bus de commande à distance 170, 

 <Desc/Clms Page number 13> 

 après que le début d'une expression a été détecté, provoque le transfert du vecteur de distance de caractère vers chacun des processeurs de gabarit à des fins de comparaison. Par une commande d'interruption, le processeur maître assure que les processeurs de gabarit commencent le traitement des vecteurs de distance de caractère sur une base de trame. Quand chacun des processeurs de gabarit a traité le DPA sur chacun des gabarits qui lui ont été assignés pour le dernier vecteur de distance de caractère et que les résultats ont été obtenus, ils génèrent une interruption sur le processeur maître 160 pour l'informer que les résultats sont prêts à être transférés. 



  Tous les processeurs de gabarit ne prendront pas le même temps pour traiter les gabarits qui lui ont été assignés sur une base de trame à trame. La quantité de temps qui est nécessaire sera signaléeau processeur maître ensemble avec les résultats du DPA. Le processeur 110 transfère les résultats des processeurs de gabarit au processeur maître par les moyens de circuit portant les nombres pairs 182-188 et le bus 170. Le processeur maître accomplit une analyse de syntaxe des résultats qui peut entraîner la spécification de nouveaux gabarits pour le traitement de la trame suivante.

   En fonction de l'analyse de syntaxe et de la quantité de temps que chaque processeur de gabarit utilise pour traiter ceux qui lui ont été assignés, les gabarits sont réattribués parmi les processeurs de gabarit par le processeur maître à l'aide des moyens de circuit portant les nombres pairs 182-188 et le bus de contrôle à distance 170. Un nouveau vecteur de distance de caractère est alors envoyé au processeur de gabarit et le processus recommence jusqu'à ce que la reconnaissance soit accomplie. 



   Le processeur maître 160 doit accomplir trois fonctions principales, c'est-à-dire l'analyse de syntaxe à partir des résultats des processeurs de gabarit sur une base de trame ; le contrôle du transfert de données par les 

 <Desc/Clms Page number 14> 

 moyens de circuit portant des nombres pairs 180-188 et les lignes de commande à distance 170 ; et des fonctions s'étendant à l'ensemble du système telles que la fourniture des résultats, d'une interface d'opération, etc. (autres que diriger les transferts de données). 



   On devra apprécier que les avantages de l'équipement 100 pour l'utilisation pour la reconnaissance continue de la parole en temps réel résident dans la capacité de traitement parallèle et celle de traiter une grande quantité de transferts et communications de données entre les processeurs sur une base de trame à trame (la plupart des expressions ne dépasseront pas 3 secondes et un délai de reconnaissance de   10% ou 0,   3 secondes n'est pas ou à peine perceptible. Par des applications en temps réel on entend ici une reconnaissance se produisant 
 EMI14.1 
 avec un délai de l'ordre de 10% de la durée de l'expression). 



  Des taux d'entrée/sortie programmés seraient inadéquats pour traiter les échanges de données significatifs requis ici entre les processeurs. Avec la   présente invention   cependant, des échanges de données entre ceux-ci sent accomplis par des moyens de circuit 180-188 et le bus de commande à distance 170 sans interférence avec le travail de traitement des différents processeurs. Comme on le décrira ultérieurement, les circuits 180 etc. comportent des circuits de commande partagés et de contrôle   àdstance qui acccmplissent la synchroni-   sation du processeur maître et des autres requêtes à distance avec le processeur local pour le transfert de données à partir et vers la mémoire partagée du processeur local.

   Les circuits de commande donnent aussi une priorité aux requêtes de telle façon que les requêtes distantes n'interféreront pas avec le traitement local. 



   En ce référant maintenant à la Fig. 4, un équipement 400 convenant pour l'utilisation comme processeur/combinaison de moyens de circuits 110/180 ; 130/182 ; 140/184 ; 150/186 ; et 

 <Desc/Clms Page number 15> 

 
160/188 est montré en plus de détails de même qu'une partie du bus de commande à distance 170. 



   Le coeur de la section processeur de l'équipement 400 est le dispositif microprocesseur 402. D'autres dispositifs qui pourraient être utilisés pour réaliser la présente invention sont le 8086 de Intel, le Z8000 de Zilog et le   ADM2901.   La puce 402 est couplée localement à : un contrôle local 403 par un bus de commande de microprocesseur 404 ; et une mémoire locale à accès aléatoire (RAM) 405. 



  Cette dernière et la puce 402 sont couplées entr'elles par un bus de données local 410 à 16 éléments binaires. 



  Le traitement par les processeurs particuliers est accompli en concordance avec les programmes emmagasinés dans la mémoire locale 405. Dans le cas d'un processeur de gabarit tel que 130 à la Fig.   4, un   programme pour réaliser le . DPA est emmagasiné dans la mémoire locale. Le contrôleur local 403 est couplé à la mémoire locale 405 par le bus de commande local 420. Une pluralité d'autres dispositifs peuvent être attachée aux bus locaux respectivement 420 pour la commande et 410 pour les données. Voir par exemple le circuit   entrée/sortie   d'interface sériel 422 du type RS232 ; un circuit de chronométrage 424 ; un circuit d'interface de synthèse de voix 426 ; un circuit d'interface BPF 423 ; et un second circuit d'interface   entrée/sortie   430 sériel du type RS232.

   Tous ces circuits sont conventionnels et sont illustrés pour montrer l'utilité de la présente solution. Ils ne sont pas décrits en détails ici. 



   Les circuits de l'équipement 400 associés avec la partie du processeur local décrite ci-dessus comprennent : une mémoire partagée 406 couplée à un bus de données partagé 412 à 16 éléments binaires qui à son tour est connecté au bus 410 par un commutateur de bus conventionnel 412 ; un circuit de commande partagé 440 ; un circuit de commande à distance 442 ; 

 <Desc/Clms Page number 16> 

 des circuits d'accès direct auxmémoires (DMA) comprenant le circuit de comptage DMA 444 couplé au circuit de commande partagé 440, la source DMA et les enregistreurs de destination 446 et 447 ainsi qu'un enregistreur DMA   entrée/sortie   à 16 éléments binaires couplés entre un bus de données à commande à distance 450 et le bus de données partagé 412 ;

   un enregistreur programmé   entrée/sortie   452 à 16 éléments binaires également couplé entre le bus de données contrôlé à distance 450 et le bus de données partagé 412 ; et des circuits d'interruption 454 et 456 à 16 éléments binaires respectivement pour les opérations locales et à distance. 



  Les enregistreurs   edrée/sortie   448 et 452 sont aussi couplés au circuit de commande à distance 442 et au circuit de commande partagé 440 dont ils recoivent des signaux de commande et d'horloge. 



   Avant de décrire les circuits de la Fig. 4 en plus de détails, le chronométrage de base de l'unité de microprocesseur 402 est donné en relation avec le diagramme de temps de la Fig. 5. Le MC68000 utilise un signal d'horloge 500 de 8 MHz généré par une horloge externe. Les cycles de transfert de données du microprocesseur sont synchronisés sur cette horloge et chacun d'eux peut-être considéré comme constitué par huit états d'horloge 0-7. De cette horloge, un signal 502 d'horloge 3P à 8 MHz est généré en utilisant des techniques de circuit de chronométrage conventionnelles. 



  L'horloge 3P (502) est en avance sur l'horloge 500 à 8 MHz d'une demi largeur d'impulsion. Une autre horloge, non montrée, CLK1P, utilisée par le circuit de la Fig. 4, est déphasée de   180    par rapport à la CLK3P. Le MC68000 génère un signal de balayage d'adresse/AS 504 qui indique que les signaux d'adresse (23 éléments binaires) du microprocesseur qui s'est affirmé sont stables et valides. Le signal/AS 504 est annulé à la seconde retombée de l'horloge de 8 MHz se 

 <Desc/Clms Page number 17> 

 produisant pendant un signal 506 (/DTACK) fourni au microprocesseur une fois que le transfert de données associé avec le cycle   entrée/sortie   est achevé.

   Comme montré à la Fig. 5, le cycle de transfert interne de données du MC68000 (lecture/inscription) peut être accompli en un minimum de 4 cycles d'horloges à 8 MHz (huit états, 0-7). Cela pourrait prendre plus de temps. Dans ce cas, le signal/DTACK est alors retardé et la suppression du signal/AS est retardée de plusieurs cycles d'horloge. 



   D'autres signaux de chronométrage générés de façon conventionnelle et utile pour exécuter des requêtes locales par le microprocesseur sont le signal 508 (END)   conmspondant   au premier cycle d'horloge complet (états 0 et 1) dans un cycle de transfert de données ; les signaux 510   (END-1)   et 512 (END-2) qui ne nécessitent pas d'autres explications ; et les signaux 513 (LOCAL), 514 (LEN), 515 (REQL) et 516 (/CEDRAM) dont le but sera décrit plus loin (ici on peut uniquement noter que 514 démarre à la fin d'une impulsion END et se termine à la fin d'une impulsion END-2). 



   En se référant maintenant aux figures, une vue d'ensemble de l'opération de la Fig. 4 est fournie. Toutes les combinaisons de moyens processeur/circuit 110/180 ; 130/182 ; 140/184 ; 150/186 ; et 160/188 se présentent sensiblement de la même façon que l'équipement 400. Ils sont programmés différemment pour accomplir des tâches différentes et dans la réalisation préférée, le processeur maître est le seul qui peut transmettre une adresse de 23 éléments binaires aux autres processeurs (esclaves). En outre, les enregistreurs d'interruption 454 et 456 de la plaquette maître ne sont pas utilisés. 



  Lorsqu'un maître désire interrompre un esclave, il utilise l'enregistreur 454 (ALQ) de l'esclave et lorsque ce dernier veut interrompre le maître, il le fait à travers son propre enregistreur 456 (IRQ). Les opérations et les requêtes 

 <Desc/Clms Page number 18> 

 effectuées par une unité de microprocesseurs à son propre bus partagé 412 sont appelées des requêtes locales tandis que celles faites par un maître pour utiliser le bus partagé de l'esclave sont appelées des requêtes à distance. 



   Lorsque le processeur d'entrée 110 a fini de générer un vecteur de distance de caractère ou quand un processeur de gabarit a terminé de traiter une trame, il va interrompre le processeur maître 160 par les registres d'interruption. 



  Par exemple, une unité de microprocesseur esclave 402 envoie une adresse à 23 éléments binaires avec le signal d'exploration d'adresse/AS 602 sur le bus 460 vers le contrôleur partagé 440 de l'esclave. Ce dernier décode les éléments binaires de l'adresse et identifie le registre de requête d'interruption distant 456 (IRQ) par un signal de commande IRQRWL (Fig. 9) comme destination pour les données de l'unité de microprocesseur 402. Ce dernier signal est combiné avec un signal 516 (CEDRAM) de requête basée sur une horloge locale et synchronisé (Fig. 13) dans le contrôleur partagé 440 pour générer 604 (CLKIRQR). 



  Le contrôleur partagé 440 ouvre le commutateur 414 par le bus 461 pour passer les données de l'unité de microprocesseur 402 au bus partagé 412. Ce contrôleur insère les données dans le registre 456 avec le signal CLKIRQR qui a été transmis par le bus 462. 



   Dès que les données sont verrouillées dans le registre d'interruption 456, le contrôleur partagé 440 envoie un signal d'interruption de trois éléments binaires sur le bus 463 directement à l'unité de microprocesseur du processeur maître. En réponse, ce dernier transmet un signal d'adresse d'accusé de réception d'interruption de 23 éléments binaires et le signal 606 (/ASR) par le bus de commande à distance 466 en retour au contrôleur partagé de l'esclave ayant provoqué l'interruption (les processeurs esclaves sont câblés de telle sorte que chacun a une priorité d'interruption 

 <Desc/Clms Page number 19> 

 respective par rapport à tous les autres.

   Lorsque le processeur maître renvoie le signal d'interruption précité, il est seulement reçu par le processeur esclave ayant la priorité la plus élevée et pour lequel il existe couramment une requête d'interruption). Le contrôleur partagé 440 de l'esclave décode les signaux d'accusé de réception d'interruption et génère ensuite un signal de commande de requête d'interruption lu à distance (IRQRRDR (Fig. 9) qui est combiné avec un signal de requête distant et synchronisé dans le contrôleur partagé pour générer un signal d'autorisation de sortie 608 (/OEIRQR, Fig. 13) qui place les données dans le registre d'interruption de l'esclave sur le bus partagé 412.

   Au même instant, le contrôleur partagé de l'esclave forme un signal de commande d'inscription distante REMOTEW et un signal de commande de lecture à distance REMOTERD (Fig. 9) qui sont combinés avec un signal de requête de synchronisation distante et synchronisé pour générer des signaux 610 (CLKPIO) et 612 (/OEREG) qui sont transmis au registre 452 (PIO) de l'esclave par le bus 464. Le contrôleur partagé forme aussi un signal de validation de données 614 (/DVPIO) qui est formé en combinant le signal de commande REMOTERD avec un signal de requête de synchronisation distante et synchronisé à l'intérieur du contrôleur partagé 440 (Fig. 14). Le   signal/DVPIO   est transmis sur le bus de commande à distance 466 vers le contrôleur à distance du processeur maître.

   Le signal CLKPIO constitue l'horloge pour insérer les données dans le registre PIO de l'esclave et le   signal/OEREG   les rend disponible au bus de données à distance. Le signal 614   (/DVPIO)   indique que les données sont déjà transférées dans le registre 452 (PIO) de l'esclave ou seront transférées par un signal CLK3P. 



   Le contrôleur à distance maître 442 (voir Fig. 15 pour les détails de la commande à distance) reçoit 614 (/DVPIO) 

 <Desc/Clms Page number 20> 

 par le conducteur 467 et génère lessignaux 616 (CLKREG) et 618 (/OEPIO) qui sont transmis sur le bus 469 vers le PIO du maître pour amener les données du bus de données distant dans le registre PIO du maître. Le contrôleur à distance du maître génère aussi : un signal 620 (TACKPIO) transmis par le conducteur 470 en retour au contrôleur partagé de l'esclave pour interrompre le signal/DVPIO ; un signal 622 (FULLIN) qui est également transmis (Fig. 15) en réponse au signal /DVPIO. Ce signal FULLIN est transmis sur le conducteur 471 à son contrôleur partagé pour informer le contrôleur partagé du maître que le registre 452 (PIO) du maître a des données prêtes pour le bus de données partagé 412. 



  Il est décodé par le contrôleur partagé pour produire des signaux de commande REGRD et LOCAL (Fig. 9) qui, à leur tour, sont combinés avec un signal de requête local et synchronisés pour   produire/OEREG   (Fig. 13) qui rend les données dans le PIO du maître disponibles au bus de données partagé. Les données sont alors synchronisées dans l'unité de processeur maître. Un signal A/DTACK est généré (Fig. 10) par le contrôleur partagé du maître et envoyé à l'unité 402 de microprocesseur du maître par 472. 



   Les données initialement envoyées au registre d'interruption à distance de l'esclave constituent un vecteur qui est utilisé par le maître pour localiser une position dans la mémoire locale du maître. Là, le maître trouve l'identité de l'esclave et l'information nécessaire concernant les données devant être envoyées afin d'effectuer un transfert, par exemple l'identité des processeurs de source et de destination, la position et la quantité des données devant être transférées et où elles doivent être localisées dans le processeur de destination.   Au finse   la discussion qui fait suite, le processeur qui contient les données devant être transférées est appelé un processeur source tandis que celui auquel 

 <Desc/Clms Page number 21> 

 les données seront transférées est appelé le processeur de destination.

   Les données doivent être transférées rapidement et pendant des cycles de traitement locaux sans interruption de ces cycles par les processeurs   impliqués   dans les transferts. 



  Ceci est effectué par un transfert de données à accès direct de mémoire (DMA). De tels transferts peuvent être utilisés pour envoyer des données de vecteur de distance de caractères du processeur d'entrée 110 à chacun des proces- seurs da gabarit 130, 140.... 150 ; pour transférer des données de gabarit parmi les processeurs de gabarit 130,140, ... 150 ; ou pour transférer des données de résultat d'un processeur de gabarit au processeur maître. 



   En revenant maintenant à une interruption de ce dernierpar un processeur esclave comme décrit ci-dessus, l'interruption est utilisée pour informer le maître que le processeur esclave provoquant l'interruption est en train d'achever une tâche de traitement. A ce moment, le maître décide quels sont les transferts de données qui doivent avoir lieu. Lorsque l'instant est approprié pour un transfert basé sur les interruptions reçues, le maître   établit un   transfert DMA en utilisant une opération   entrée/sortie   programmée comme décrit ci-dessous en connexion avec les figures 4,5 et 7. 



   Afin d'effectuer un transfert de données de mémoire entre les processeurs, tel qu'un transfert de données de gabarit d'un esclave à un autre, le processeur maître inscrit une adresse de démarrage de destination à 16 éléments binaires vers le processeur de destination à l'aide d'une opération entrée/ sortie programmée. Ceci informe le processeur de destination où les données à transférer doivent être emmagasinées dans sa mémoire partagée 406. Ensuite, le processeur maître inscrit un mot de comptage de mot de source à 16 éléments binaires et un mot d'adresse de démarrage de source de la même longueur pour le processeur de source devant transmettre les données. 

 <Desc/Clms Page number 22> 

 



  Cette information informe le processeur de source quant à la quantité de données devant être transférées et où les trouver dans sa mémoire partagée. 



   Le processeur maître place le mot d'adresse de démarrage de destination à 16 éléments binaires sur son bus   bedonnées   et transmet un mot d'adresse à 23 éléments binaires et le signal/AS 702 à son contrôleur partagé sur le bus 460. Ce dernier accomplit ce qui suit : il décode l'adresse et génère un signal de commande REGW (Fig. 9) qui est combiné avec un signal de requête synchronisé localement et synchronisé pour générer un signal 704 (CLKPIO) ; il actionne le commutateur   14   du bus de données ; il utilise le signal CLKPIO pour synchroniser les données de l'unité de microprocesseur 402 à travers le commutateur 412, par le bus de données partagé 412, dans le côté B du registre 452 (PIO) ;

   il génère un signal 706 (/DVPIO, Fig. 14) qui est transmis sur le bus de commande à distance 466 vers le processeur esclave qui sera celui de destination pour les données ; et il ouvre le commutateur 480 pour permettre la transmission de l'adresse à 23 éléments binaires et du signal/AS vers le processeur de destination par le bus de commande à distance 466. Le processeur maître attend maintenant un signal/DTACK. 



   Le contrôleur partagé de destination esclave décode le signal d'adresse pour son ID et quant il trouve le contrôleur partagé, génère le signal de commande REMOTEW (Fig. 9) qui est transmis au contrôleur à distance de l'esclave par le bus 474. Ceci autorise le signal/DVPIO transmis du processeur maître dans le contrôleur à distance de l'esclave 442 (Fig.   15).   



  En réponse, le contrôle à distance esclave (Fig. 15) accomplit ce qui suit : il génère le signal 708 (/OEPIO) qui est transmis au PIO du maître ; il génère et transmet 710 (TACKPIO) en retour au contrôleur partagé du maître pour annuler le signal/DVPIO ; il génère 712 (CLKREG) transmis par le bus 469 au registre 

 <Desc/Clms Page number 23> 

 PIO de l'esclave pour synchroniser le mot d'adresse de desti- 
 EMI23.1 
 e nation dans le registre PIO ; et il génère un signal 714 (FULLIN) transmis au contrôleur partagé de l'esclave. 



   Entretemps, le contrôleur partagé de l'esclave de destination décode aussi FULLIN et l'adresse du maître pour générer 718 (/OEREG) et le transmet au 452 (PIO) par le bus 464. Ceci rend le mot d'adresse de démarrage de destination disponible sur le bus partagé 412 de l'esclave pour inscription dans le compteur DMA 444 de l'esclave. 



   Le contrôleur partagé de l'esclave génère un signal de commande de requête à distance (REQR) qui est aligné et synchronisé pour former720 (REN) et génère un signal de commande 722 (DMADR, Fig. 9) qui est transmis par le bus 482 au registre de destination 447 (DMA Ces signaux établissent le registre 447 (avec CLK3P) qui retourne un signal 724 (DMADEST) vers le contrôleur partagé de l'esclave par le conducteur 483 (voir Fig. 16). Ce dernier signal est utilisé par le contrôleur partagé pour générer une augmentation d'une unité pour le compteur 444 (DMA) sur le conducteur   484 (vair ag 17).   



   En même temps que le contrôleur partagé décode DMADR, il décode un signal de commande 725 (DMAR, Fig. 9) qui est combiné avec un signal de requête synchronisé à distance et synchronisé et utilisé par le contrôleur partagé pour autoriser (par le bus 485) l'adresse de démarrage de destination afin de la synchroniser (726, CLKDMA) dans le compteur   DMAvoir   Fig. 17). Le contrôleur partagé génère aussi 728 (/DTACK) qui est transmis en retour au microprocesseur maître pour annuler/AS. 



   Le processeur maître commence encore deux transferts   entrée/sortie   programmés : (1) afin de charger le mot de comptage de mot de source dans le compteur DMA du processeur de source ; et (2) afin de charger le mot d'adresse de   démarrage   de source dans le compteur DMA. Ces mots sont inscrits de la même façon 

 <Desc/Clms Page number 24> 

 que l'adresse de démarrage de destination comme aecrir ci-dessus. 



  Cependant, comme l'adresse de démarrage de source (DMA) est inscrite dans le compteur 444 (DMA), le contrôleur partagé de source décode l'adresse du processeur maître pour générer un signal de commande DMASR (Fig. 9) qui est combiné avec un signal de requête synchronisé à distance et synchronisé pour établir le registre de source 446 (DMA) par le bus 486. 



  Ce registre transmet alors un signal DMASRC en retour au contrôleur partagé 440 par le conducteur 487. 



   Un transfert de données DMA à travers les circuits DMA est accompli en transmettant l'adresse de démarrage de source ou de destination à 16 éléments binaires emmagasinée dans le compteur 444 (DMA) vers le contrôleur partagé 440 par le bus 490 où l'adresse est décodée pour sélectionner la position de mémoire appropriée dans la mémoire partagée 406. Après transfert des données, l'adresse est augmentée d'une unité. Une description détaillée de ce processus est donnée ci-dessous. 



   Un signal DMASRC ou DMADEST (respectivement établi dans les registres 446 et 447) est requis pour établir une requête DMA alignée et synchronisé pour transférer des données d'un microprocesseur à un autre par les circuits DMA. Un signal DMASRC est utilisé sur le flanc montant d'un signal CLK3P pour augmenter d'une unité l'adresse de démarrage de source emmagasinée dans le compteur de source DMA. De façon similaire, le signal DMADEST est utilisé pour augmenter d'une unité le compteur de destination DMA. 



   Un signal DMASRC convenablement aligné et synchronisé en provenance du contrôleur partagé de source génère un signal 810 (/INCSRC, Fig. 17) qui synchronise les données de la mémoire partagée 406 sur le bus partagé 412 dans le côté B du registre   entrée/sortie   448 (DMA). Au même instant, le contrôleur partagé de source génère un signal 812 (/DVDMA) de validation 

 <Desc/Clms Page number 25> 

 de données (Fig. 14) qui est transmis sur le   conducteur   493 vers le bus de commande à distance 466 et ensuite par le conducteur 494 au contrôleur de destination commandé à distance.

   En réponse, ce dernier accomplit ce qui suit : il génère 814 (/OEDMA, Fig. 15) qui est transmis sur le conducteur 495 au bus de commande à distance 466, à travers le contrôleur partagé de source, et ensuite par le bus 496 vers le   DMAI/0   de source pour placer les données qui sont emmagasinées sur le bus de commande à distance 450 ; il génère et transmet 816 (TACKDMA, Fig. 15) sur le conducteur 497 au bus 466 et ensuite au contrôleur partagé de source pour annuler le signal/DVDMA ; il génère un signal 818 (CLKREG, Fig. 15) transmis par le bus 496 au DMAI/0 de destination qui y inscrit les données du bus de données de contrôle à distance 450 ;

   et il génère un signal 820 (FULDD, Fig. 15) transmis au contrôleur partagé de destination où il est combiné avec DMADEST et ENXFER pour générer 822   (/INCEST,   Fig. 17) lequel signal de sortie permet aux données d'être transférées sur le bus partagé du processeur de destination. 



  Delà les données font l'objet d'une inscription synchronisée dans la mémoire partagée de destination à une position identifiée par l'adresse courante emmagasinée dans le compteur DMA. Les compteurs de source et de destination sont automatiquement augmentés d'une unité et le transfert de données d'accès de mémoire directe est répété lors du prochain intervalle de temps disponible. Le signal 813 de la bascule 1722 (J-K) bloque/INCSRC jusqu'à ce que TACKDMA soit généré. 



   Le contrôleur partagé 440 accomplit deux fonctions principales : (1) ensemble avec d'autres signaux tels que FULLIN, il décode une partie du signal d'adresse à 23 éléments binaires reçu soit localement d'une puce 402 d'un microprocesseur associé ou d'une position distante d'une puce de processeur maître par le bus de commande à distance 466 pour générer les 

 <Desc/Clms Page number 26> 

 différents signaux de commande qui identifient le dispositif local devant être atteint et comment, par exemple pour lire à partir de la mémoire partagée ou y inscrire des données, les circuits DMA (compteur, registre et entrée/sortie), les registres d'interruption, le PIO ou le contrôleur à distance ;

   et il aligne et synchronise le signal de commande pour acquérir la commande du bus de données partagé 412 sans jamais interrompre ou retarder l'accès de la puce de microprocesseur locale à la mémoire partagée 406 par le bus partagé 412. 



   La Fig. 9 montre la logique de décodage du contrôleur partagé   désignas   généralement par 900 en plus de détails. Ce circuit logique génère les signaux de commande mentionnés ci-dessus auxquels on se réfère de manière identique aux dessins. Par exemple, la puce de microprocesseur local 402 transmet un signal d'adresse respectivement   au : décodeurs   locaux 902 et 904. Une partie de l'adresse est tout d'abord   décodés par   des circuits de décodage préliminaire 903 avant d'être transmise aux décodeurs 902 et 904. Ces derniers génèrent les signaux de commande montrés. Par exemple, le signal de commande IRQRWL indique que la puce 402 de microprocesseur local (L) souhaite inscrire (W) dans le registre 456 (IRQ) d'interruption à distance. 



   Egalement montré à la Fig. 9 sont les décodeurs à distance 906 et 908 qui, en réponse à des éléments binaires d'adresse reçus de la puce de microprocesseur maître, dont une portion passe à travers les circuits de décodage préliminaire 905, génèrent les signaux de commande montrés. Par exemple, quand le processeur maître souhaite interrompre un processeur esclave, le maître envoie une adresse au contrôleur partagé de l'esclave (décodeur 906 et 908) et génère un signal d'inscription (w) à distance (R) pour le registre 454 (ILQ) d'interruption locale de l'esclave. 

 <Desc/Clms Page number 27> 

 



   Outre les éléments binaires d'adresse, un signal FULLIN est utilisé par les numéros pairs 902-908 du registre de décodage lorsqu'on désire accéder au registre PIO ou DMA. Le signal FULLIN lorsqu'il est positif, indique que soit le registre PIO soit le registre DMA a verrouillé les données. Sans FULLIN les signaux de commande pour ces registres ne seront pas décodés. 



   Des descriptions qui précèdent, on appréciera que plus d'un demandeur peut demander un transfert de données sur le bus de données partagé 412 au même instant. Par exemple, un microprocesseur esclave peut demander le bus de données partagé qui produit un signal de commande LOCAL à la Fig. 9 ; le microprocesseur maître peut demander le bus de données partagé de l'esclave produisant un signal de commande REMOTE à la Fig. 9 ; ou les registres 446 ou 447 (DMA) de source ou de destination peuvent requérir le bus de données partagé en réponse à des signaux DMADEST et DMASRC (voir Fig. 10). De toute évidence, toutes ces requêtes ne peuvent être accordées en même temps de   telle sco B qu'elles   doivent faire l'objet de priorités   etette synchronisées   avec une horloge locale telle que CLK3P. 



   La priorité la plus élevée est donnée à la puce de microprocesseur local pour la commande du bus de données partagé. Lorsqu'une requête locale est faite, les circuits de décodage 900 produisent un signal de commande 513 (LOCAL) qui est combiné avec un signal 514 (LEN) pour produire un signal 515 (REQL) d'un cycle. Il est aligné avec CLK3P pour produire un signal de requête de bus de données partage local aligné 516 (CEDRAM). Ce dernier donne la commande du bus de données partagé à la puce 402 du processeur esclave local. 



   En se référant maintenant à la Fig. 10, un circuit pour accorder des priorités et synchroniser les requêtes de 

 <Desc/Clms Page number 28> 

 bus de données partagées est montré en plus de détails. 



  Si le processeur maître désire obtenir le contrôle d'un bus de données partagé d'un esclave, un signal 518 (REMOTE) sera généré par le décodeur 908. Ceci est combiné avec le signal explorateur d'adresse du maître dans la porte 1004 (AND). Le signal de sortie de cette porte est transmis à la porte 1006 (AND) où il est associé avec la sortie de la porte 1002 (AND). La sortie de la porte 1006 génère un signal de requête de bus de données partagé pour contrôle à distance 520 (REQR). Si un signal 515 (REQL) est présent à l'entrée de la porte 1002 (LOW/REQL), aucun signal 520 (REQR) n'est possible. La sortie de la porte 1006 est transmise à l'entrée J du circuit bascule 1008 (dual J-K) où il est synchronisé avec CLK3P pour générer un signal REQR aligné 522 (REN). 



   Un signal DMASRC ou DMADEST des registres 446 ou 447 va générer une sortie positive en provenance de la porte 1010 (OR), le signal 524. Il est transmis à la porte 1012 (AND) qui produit un signal 526 (REQD) de requête de bus de données partagé DMA. La sortie de la porte 1002 est aussi   utilises   pour autoriser la porte 1012 de telle façon qu'un signal REQD n'est pas possible quand un signal REQL est présent. 



  De façon analogue, si un signal REQR est présent, l'inverseur 1014 fournit une entrée basse à la porte 1012 pour l'inhiber. 



  Par conséquent, si un signal REQL est présent, ni REQR ni REQD n'est possible. Si REQR est présent, alors REQD n'est pas possible. Ce dernier est aligné avec CLK3P par le circuit bascule 1016 (J-K) pour produire un signal REQD synchronisé 528 (DEN). Le   signal/REQL   est autorisé par la porte 1002 grâce à la sortie de la porte 1001 (NOR) dont les entrées sont/AS et C06. Lorsque ce dernier est présent, il étend /AS jusqu'au flanc montant suivant de CLK3P. 



   Une puce 402 de microprocesseur local utilise au moins quatre cyrcles d'horloge à 8 MHz pour achever une 

 <Desc/Clms Page number 29> 

 opération de lecture ou d'inscription. Généralement, les données sont transférées vers ou hors de la puce au milieu de l'état 3 de CLKOP. Les transferts de données dans le bus de données partagé prennent seulement deux cycles d'horloge à 8 MHz avec les données sur le bus présentes pendant seulement un cycle d'horloge. Si une requête locale est faite pour le bus de données partagé, les données seront présentes sur le bus pendant un cycle à partir du milieu de l'état 3 jusqu'au milieu de l'état 5. Cependant, un nouveau transfert local n'est pas possible avant le prochain état 3.

   Par conséquent, il est possible d'insérer les autres transferts de données sur le bus de données partagées avant le prochain transfert local aussi longtemps qu'ils sont terminés lors du prochain état 3. 



   Le circuit de la Fig. 11 désigné généralement par 1100, faisant partie du contrôleur partagé 440, est un contrôleur séquentiel ou synchronisateur destiné à synchroniser les requêtes de bus de données partagées pour contrôle à distance et DMA avec l'horloge du processeur local. Le circuit permet accès au bus de données partagé et deux transferts de données d'horloge sur le bus de données partagé démarrant au milieu des états 3,5 et 7. 



   Les entrées vers les portes 1101-1105 (NAND) sont les signaux explorateur d'adresse de microprocesseur local AS, CLK3P, END-1 et les signaux de requête REQL, REQR et REQD du circuit 1000. Ce dernier produit ENXFER, ENACCESS et CIO utilisés par 1000 pour empêcher toute requête à distance ou DMA (REQR et RAQD) d'être constituée pendant l'intervalle entre le début de l'état 2 et le début de l'état 6. L'alignement dans le temps des signaux ENXFER et CIO est montré à la Fig 12. Le circuit 1100 comprend en outre les circuits de bascule d'entrée 1100 (D), PROMS 1108 et 1110, et les bascules D de sortie 1112, 1114,1116 et 1118. 

 <Desc/Clms Page number 30> 

 



   L'accès local à un bus de données partagé (cest-àdire un transfert de données impliquant la puce de microprocesseur 402) est seulement permis à partir du milieu de l'état 3 et se termine au milieu de l'état 5. Si aucune requête locale n'est présente (pas de REQL), alors   RBQR   ou REQD, s'il est présent, aura un accès au milieu de l'état 3. Si une requête locale était présente, alors une requête ou DMA peut être accordée au milieu de l'état 5. Si une requête de bus de données partagé DMA ou de contrôle à distance se produit après l'état 5 mais avant l'état 7, elle sera accordée au milieu de ce dernier état.

   Aucun accès ne sera accordé au bus de données partagé entre le milieu de l'état 7 et celui de l'état 3 car une requête locale, si elle doit se produire, interviendra pendant cette période et on doit lui accorder accès au bus lorsqu'elle se produit. 



   La Fig. 12 montre la chronologie des évènements 
 EMI30.1 
 dans le circuit de la Fig. 11. Les signaux 1204 (AS) et 1208 se combinent pour fournir le début ou    (C12)partie/ST   de 1212 sur le conducteur   U20   à la Fig. 11, tandis que les signaux END-1 et Cil se combinent pour produire la fin ou partie/E. Les signaux/ST et/E ensemble avec CLK3P produisent le signal 1214 (/SYNC). Les signaux C9 et C10 deviennent haut suite à ce dernier. 



   Un signal REQL admis par C9 ou REQR ou REQD admis par C10 entraînera un signal/ACCESS bas sur le conducteur 1122 tandis que ce signal combiné avec CLK3P   produit/ACC   (signaux 1224 et 1232) qui peuvent seulement se produire au milieu des états 3,5 ou 7 comme indiqué précédemment à cause de la présence de C9 et   C10.   Ces derniers sont produits par le PROM 11 en réponse aux signaux/SYNC et/ACC. 



   Ce dernier est transmis au PROM 11 par le conducteur 1124 et il y produit immédiatement C07 (1126 ou 1234) 

 <Desc/Clms Page number 31> 

 où il y produit immédiatement C07 (1226 ou 1234) qui provoque la production de ENXFER (1228 ou 1236) lors du prochain cycle LCK3P du circuit basculeur 1116. 



   La Fig. 13 montre comment le contrôleur partagé combine les signaux de commande des circuits de décodage de la Fig. 9 avec les signaux de requête de bus partagé alignés et de synchronisation des Figs. 10 et 11 pour produire les signaux d'autorisation d'horloge et de sortie respectivement pour les registres d'interruption 454 et 456 local et de contrôle à distance, et le registre 452   (PI0).   Les portes 1302 et 1304 (NAND) combinent leurs entrées pour fournir un signal d'autorisation de sortie pour le registre 456 (IRQ) en provenance soit d'une requête locale (CEDRAM) ou à distance 
 EMI31.1 
 (REN). Les portes 1306 et 1308 combinent leurs entrées pour générer un signal d'horloge IRQ (CLKIRQR) en réponse soit à une requête locale ou à distance.

   Des circuits similaires existent aussi pour générer des signaux d'autorisation de sortie et d'horloge pour les registres d'interruption locaux. 



  En se référant à la Fig. 5 on devra noter que les signaux de requête 515,520 et 526 précèdent les signaux de requête aligné associés 516,522 et 528. Les signaux de requête alignésindiquent que des signaux de commande pour les dispositifs du bus de données partagé sont autorisés. Ils le sont à cause de la présence antérieure des signaux de requête 515,520 et 526. 

 <Desc/Clms Page number 32> 

 



   Au contraire des registres d'interruption 454 et 456 qui sont seulement connectés à un seul bus de données, le bus de données partagé 412   (P10),   le registre 452 est connecté à deux bus de données, le bus de données 412 et le bus de données controlé à distance 450. L'insertion synchronisée des données dans le registre   P10   à partir du bus de données partagées et l'extraction des données P10 sur le bus de données partagé sont effectuées par le contrôleur partagé. Les portes 1310 et 1312 (NAND) combinent leurs entrées pour générer des signaux d'horloge de requête distante CLKP10 tandis que les portes 1314 et 1316 (NAND) combinent leurs entrées pour générer le signal d'autorisation de sortie locale et distante/OEREG. 



   Lorsque les données sont insérées dans le registre P10 à l'aide de CLKP10, le contrôleur partagé insère un signal de validation de données/DVP10 qui est inscrit sur le bus de commande à distance au contrôleur distant du processeur auquel les données seront transmises. 



  Le circuit pour générer un signal/DVP10 est montré à la Fig. 14. Il fait partie du contrôleur partagé 440 et comprend les portes d'entrée 1402 et 1404 (NAND) ; la porte 1406 (NAND) et le basculeur 1408 (dual J-K). Les signaux de commande utilisés pour générer CLKP10 sont aussi employés pour obtenir/DVP10. 



   Le contrôleur distant du microprocesseur de destination commande les mouvements de données d'un registre P10 par le bus de données distant 450 et vers un autre registre P10 à partir du bus de données distant. Il fait ceci en générant les   signaux/OEP10   et CLKREG en réponse au signal/DVPIO. La Fig. 15 montre les détails du contrôleur distant 442 qui comprend : une première logique de décodage d'entrée comprenant les portes 1502 à 1508 (NOR) ; le circuit de décodage 1510 (5-8) ; les basculeurs 

 <Desc/Clms Page number 33> 

 1512 et 1514 (D-QUAD) ; le basculeur 1516 (Dual J-K) ; et des circuits d'entrée pour ce basculeur comprenant l'i nverseur 1520 et la porte 1522 (NOR).

   Dans le cas d'un transfert de données P10, le signal/DVP10 est autorisé à travers la porte 1506 seulement lorsque le contrôleur partagé associé a décodé un signal de commande REMOTEW ou REGRD. Le circuit de décodage 1510 utilise la sortie de la porte 1506 et génère des sorties transmises aux circuits 1512 et 1514 ainsi qu'au basculeur 1516 qui, à son tour, génère les signaux/OEP10, CLKREG,   TACKPiQét   FULLIN. Le signal TACKP10 est renvoyé au contrôleur partagé émetteur pour annuler /DVPlO. Le signal FULLIN indique que le registre local P10 possède les données comme décrit ci-avant. En relation avec la Fig. 4, le contrôleur partagé utilise le signal FULLIN et une adresse de microprocesseur pour générer /OEREG vers P10 qui place les données sur le bus de données partagé.

   Le   signal/OEREG   est utilisé pour remettre le basculeur J-K à zéro. 



   La production des signaux d'interruption de synchronisation du registre P10 et d'autorisation de sortie a été   décrite ci-dessus   en relation avec les Fig. 13 à 15. 



  Celle de signaux similaires pour le registre 448 (DMAIO) sera maintenant décrite en relation avec les Figs. 14 à 17. 



  A la Fig. 16, les portes d'entrée 1602,1604, 1606 et 1608 (NOR) combinent les signaux de commande appropriés (DMASL, DMASR, DMADL, DMADR), les signaux d horloge et de synchronisation (CEDRAM, REN et ENXFER) pour générer des signaux d'établissement de registre de source DMA et de destination qui sont passés à travers le circuit de porte intermédiaire 1610 (QUAD NOR) pour établir le circuit basculeur 1612 (dual J-K). Les sorties Q du basculeur 1612 constituent les signaux de commande DMASRC et DMADEST. 

 <Desc/Clms Page number 34> 

 



   En se référant à la Fig. 10, soit le signal DMASRC ou DMADEST est utilisé pour générer une requête DMA pour un bus de données partagé REQD. Comme mentionné antérieurement, ceci se produit seulement si aucun signal REQL ou REQR n'est présent. Aussi longtemps quun registre 446 ou 447 est établi cependant, le circuit de la Fig. 10 va générer REQD en absence de REQL ou REQR. La Fig. 10 génère un signal DEN en réponse à REQD lors du flanc avant de CLK3P. A la Fig. 17, les portes   d'entrée   1702 et 1704 (NAND) combinent une requête locale ou distante et des signaux d'alignement de synchronisation pour inscrire 
 EMI34.1 
 1 1 l'adresse de démarrage de source ou de destination ou de comptage de mots de source à partir du bus de données partagé sur le bus 1706.

   Les sorties des portes 1702 et 1704 sont combinées par les portes 1708,1710 et 1712 (NOR) avec trois éléments binaires d'adresse provenant du processeur maître pour y identifier si le mot qui est inséré est une adresse de démarrage ou un comptage de mots. 



  Aussitôt que l'adresse de démarrage est décodée, on   sélect   tionne une position d'adresse particulière dans l'une parmi 8 puces de mémoire. 



   Les signaux DMADEST et DMASRC sont aussi utilisés à la Fig. 17 pour permettre d'ajouter une unité à l'adresse de démarrage avec   l'horloge CLK3P.   Les portes 1716 et 1718 (NAND) combinent soit le DMADEST ou DMASRC avec DEN et ENXFER suivant que le compteur 444 (DMA) est utilisé comme compteur de source ou de destination. Les sorties de portes 1716 et 1718 sont combinées par une porte 1720 (NAND) pour produire un signal d'autorisation lorsque soit DMADEST ou DMASRC est autorisé par sa porte respective (NAND) pour fournir une entrée basse à la porte 1720. 



  Après que les compteurs DMA ont été établis par le processeur maître ou après qu'une unité a été ajoutée aux compteurs, 

 <Desc/Clms Page number 35> 

 
 EMI35.1 
 les données d'une adresse dans la mémoire partagée selectionnées par le compteur DMA doivent être déplacées mémoire partagée à travers Tas mgistres de source et de destination DMAI/0 vers une position dans la mémoire partagée de destination sélectionnée par l'adresse du compteur de destination. 



  Avant qu'une unité ne puisse être ajoutée dans le compteur DMA, les données doivent être déplacées en synchronisme dans et hors du DMAI/0. Le signal IINCSRC de la porte 1718 est transmis du contrôleur partagé sur le bus 492 pour synchroniser les données de la mémoire partagée de la source 448 {DMAI/0). Un signal/DVDMA est généré à partir du basculeur 1408 à la Fig. 14 en réponse aux signaux C07 et DEN à la porte 1410. En réponse au /DVDMA ou en l'absence d'un signal/DVP10 ou d'une demande du compteur distant sur le bus distant, le circuit de la Fig. 15   génère/OEDMA pbur   la source DMAI/0. Au même instant, un signal TACKDMA est généré qui revient à la porte 1412 à la Fig. 14 pour remettre à zéro le basculeur J-K et annuler DVDMA.

   A ce moment, la sortie de l'inverseur 1414 à la Fig. 14 (/TACKDMAIN) est transmise au basculeur 1722 (J-K) qui combine les portes DMASRC avec un signal de requête DEN et un signal de transfert de synchronisation ENXFER à travers la porte NAND 1718 pour ajouter une unité au compteur 440. Cette opération ne peut être effectuée sur le compteur de destination avant que les données de sortie adressées à la source DMAI/0 ne soient avec certitude transmises à travers la destination DMAI/0 et emmagasinées dans la mémoire de destination. A l'instant   où 10EDMA   et TACKDMA sont générés, le signal CLKREG de la Fig. 15 l'est également et ceci synchronise les   donnéesdu   bus distant à la destination   DMAI/0.   



   Lorsque le contrôleur partagé de destination accepte/DVDMA, il génère aussi un signal du décodeur 1510   (5-a   pour le basculeur 1512 (J-K) qui établit une sortie 

 <Desc/Clms Page number 36> 

 Q pour fournir FULDD indiquant que la destination DMAI/0 peut être remplie par CLKREG. Le signal FULDD est transmis à la porte 1716 (NAND) dans le contrôleur partagé de destination pour permettre, à l'instant approprié, à DMADEST d'ajouter une unité au compteur DMA après être passé à travers la porte   1724 {AND).   La sortie de la porte 1716 (NAND),/INDEST, est transmise par le bus 492 à la destination DMAI/0 pour autoriser la sortie des données qui passent immédiatement par le bus de données partagé 412 pour adresser la mémoire partagée avant que le signal d'augmentation d'une unité ne soit autorisé. 



   Après la dernière augmentation à partir du compteur de source DMA, une fin de signal DMA (EODMA) est générée par. le compteur de source 444. Ceci est utilisé par le circuit contrôleur de source de la Fig. 16 pour établir le basculeur 1620. Ce signal est aussi passé par la porte 
 EMI36.1 
 1622 (NAND) pour transmettre/DMASRCB sur le conducteur 1624 vers le contrôleur partagé de destination. Le signal /DMASRCB arrive sur le conducteur 1622 et est autorisé à travers la porte 1624 par/DMDEST pour établir le basculeur 1626 (J-K) qui, à son tour, établit le basculeur 1628 (D). 



  Ce dernier établit le basculeur 1629 (D) qui à son tour remet à zéro le registre de destination 447 (un des basculeurs J-K dans 1612). Le signal DMADEST devient alors bas. 



   Entretemps, au microprocesseur de la source, le basculeur 1620 (D), établi par EODMA, établit à son tour le basculeur 1630. La sortie Q basse est passée à travers la porte 1632 (NOR) par le signal d'augmentation de compteur ADMAINC de la porte 1720 (AND) et passée à travers la porte 1610 (NAND) par DMASRC ppur remettre à zéro le registre de source 446 (DMASRC devient bas). 



   Les circuits DMA en réponse aux mots d'adresse de démarrage de destination et de source et au comptage de mots de source insérés dans les compteurs DMA par le 

 <Desc/Clms Page number 37> 

 processeur maître (à l'aide d'un transfert entrée sortie) et commandés par les circuits de signaux de requête du bus de données partagé et les circuits de synchronisation, fournissent un transfert de données entre les mémoires   partagéesui   a lieu indépendemment de tout contrôle par le processeur et pendant le traitement local de données emmagasinées dans les mémoires partagées et sans interférence avec celui-ci. Le transfert de données de cette façon est distribué, car un compteur de source dans le DMA est situé à une position de traitement et un compteur DMA de destination est situé en un endroit séparé. 



   Bien que les principes de l'invention aient été décrits ci-dessus en se référant à des exemples particuliers, il est bien entendu que cette description est faite seulement à titre d'exemple et ne constitue aucunement une limitation de la portée de l'invention.

Claims (11)

  1. REVENDICATIONS 1. Equipement de traitement de données pour accomplir une fonction prédéterminée comprenant : au moins deux processeurs couplés par un bus de commande à distance et chacun ayant une mémoire partagée associée et pouvant effectuer un traitement local sur des données emmagasinées dans la mémoire ; et des moyens de transfert de données associés à chacun des processeurs et aux mémoires et couplés pour transférer au moins une partie des données entre les mémoires partagées par le bus à l'aide d'un accès distribué direct aux mémoires (DMA) pendant et sans interférer avec le traitement local de parties restantes des données par les processeurs.
  2. 2. Equipement comme sous 1, où les moyens de transfert de données comprennent en outre : un bus de données partagé associé à chacune des mémoires partagées et aux processeurs et couplé pour transférer des données entre les mémoires et le bus de commande à distance et entre les mémoires et les processeurs ; un contrôleur de bus de commande à distance pour contrôler le transfert de données sur celui-ci ; une pluralité de circuits pour effectuer le transfert de données sur le bus de données partagé comprenant : des circuits DMA pour un transfert DMA des données entre les mémoires en réponse à des signaux d'au moins un des processeurs avant le transfert DMA ;
    <Desc/Clms Page number 39> des circuits entrée/sortie programmables pour un transfert programmé de données sur le bus de commande à distance y compris la fourniture des signaux aux circuits DMA ; et des circuits de contrôleur partagé pour commander le transfert de données sur le bus de données partagé.
  3. 3. Equipement comme sous 2, dans lequel un des processeurs est un maître et l'autre un esclave, le maître pour contrôler le transfert de données permettant l'envoi de signaux d'entrée aux circuits DMA.
  4. 4. Equipement comme sous 3, dans lequel les circuits de contrôleur partagé comprennent : des circuits de décodage pour les adresses locales des processeurs pour générer des signaux de commande locaux et DMA, et pour décoder des adresses distantes des processeurs et générer des signaux de commande distante et DMA ; des circuits pour générer des requêtes locales, distantes et DMA affectées d'une priorité pour le bus partagé en réponse à une première partie des signaux de commande ; des circuits pour synchroniser les signaux de requête avec le traitement local des données de mémoire pour le processeur esclave afin de ne pas interrompre ce traitement ; et des circuits d'horloge et d'autorisation pour transférer des données entre le bus partagé et un circuits parmi la pluralité.
  5. 5. Equipement pour reconnaître un débit continu de parole comprenant : une pluralité de processeurs couplé par un bus de commande à distance et chacun ayant une mémoire partagée qui lui est associée, les processeurs servant à convertir des mots parlés sans interruption en des données paramétriques, à comparer ces dernières à des données de gabarit emmagasinées, et à analyser les résultats de la comparaison ; et <Desc/Clms Page number 40> des moyens de transfert de données associés à chacun des processeurs et de leurs mémoires et couplés afin de transférer les données paramétriques, de gabarit et de résultats parmi les mémoires partagées par accès distribué direct aux mémoires (DMA) pendant et sans interférence avec la conversion, la comparaison ou l'analyse de parties restantes des données.
  6. 6. Equipement comme sous 5, dans lequel les processeurs comprennent : un processeur d'entrée comportant des moyens de conversion de la parole pour échantilloner une pluralité de fois les mots émis en continu et pour les convertir en données numériques, le processeur d'entrée convertissant ces dernières en des trames de données paramétriques correspondantes ; au moins deux processeurs de gabarit pour emmagasiner les donnés de gabarit et pour les comparer suivant un algorithme prédéterminé avec les trames de données paramétriques afin de fournir des données résultantes ; et un processeur maître pour commander le transfert de ces trames au moins à deux processeurs de gabarit, le transfert des données de gabarit entre ces processeurs et l'envoi des données résultantes au processeur maître ayant lieu à chaque nouvelle trame de données paramétriques.
  7. 7. Equipement comme sous 6 dans lequel la pluralité de processeurs de gabarit en comprend au moins quatre et le vocabulaire au moins trois cents mots.
  8. 8. Méthode pour la reconnaissance automatique de mots parlés continuellement en temps réel utilisant un processeur de parole qui convertit ces mots en données paramétriques et utilisant au moins deux processeurs de gabarit qui emmagasinent des gabarits d'un vocabulaire de mots pouvant être reconnus et qui comparent ces données paramétriques avec ces gabarits, la méthode comportant : le transfert des données paramétriques et des gabarits <Desc/Clms Page number 41> entre les processeurs ae parole et ce gabarits sans interférer avec la conversion des mots parlés en données paramétriques ou avec la comparaison entre celles-ci et les gabarits, afin d'accélérer la reconnaissance automatique de la parole en temps réel.
  9. 9. Méthode de reconnaissance de mots parlés continuellement comprenant : la conversion par un processeur d'entrée des mots en des trames de données paramétriques plus appropriées au traitement de la parole ; l'emmagasinage d'un vocabulaire de mots à reconnaître comme gabarits dans au moins deux processeurs de gabarits ; le transfert des trames à ces processeurs pour comparaison avec les gabarits emmagasinés ; et la redistribution des gabarits parmi les processeurs pour comparaison avec une nouvelle trame pendant qu'une trame antérieure est traitée.
  10. 10. Méthode comme sous 9, dans laquelle le transfert des trames et la redistribution sont effectués par un accès distribué direct aux mémoires.
  11. 11. Méthode comme sous 10, dans laquelle il y a au moins quatre processeurs de gabarits et au moins trois cents mots de vocabulaires emmagasinés comme gabarits.
BE2/60244A 1982-11-03 1983-11-03 Equipement de traitement de donn es et syst&me de reconnaissance de parole l'utilisant. BE898134A (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/439,018 US4567606A (en) 1982-11-03 1982-11-03 Data processing apparatus and method for use in speech recognition

Publications (1)

Publication Number Publication Date
BE898134A true BE898134A (fr) 1984-05-03

Family

ID=23742953

Family Applications (1)

Application Number Title Priority Date Filing Date
BE2/60244A BE898134A (fr) 1982-11-03 1983-11-03 Equipement de traitement de donn es et syst&me de reconnaissance de parole l'utilisant.

Country Status (6)

Country Link
US (1) US4567606A (fr)
EP (1) EP0108354A3 (fr)
JP (1) JPS59144967A (fr)
BE (1) BE898134A (fr)
CA (1) CA1198216A (fr)
ES (1) ES8601536A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113488024A (zh) * 2021-05-31 2021-10-08 杭州摸象大数据科技有限公司 一种基于语义识别的电话打断识别方法和系统

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674066A (en) * 1983-02-18 1987-06-16 Houghton Mifflin Company Textual database system using skeletonization and phonetic replacement to retrieve words matching or similar to query words
US4771401A (en) * 1983-02-18 1988-09-13 Houghton Mifflin Company Apparatus and method for linguistic expression processing
JPS60501180A (ja) * 1983-03-28 1985-07-25 エクソン リサ−チ アンド エンジニアリング カンパニ− スピ−チ認識方法および装置
US4713778A (en) * 1984-03-27 1987-12-15 Exxon Research And Engineering Company Speech recognition method
US4718092A (en) * 1984-03-27 1988-01-05 Exxon Research And Engineering Company Speech recognition activation and deactivation method
US4718088A (en) * 1984-03-27 1988-01-05 Exxon Research And Engineering Company Speech recognition training method
US4718093A (en) * 1984-03-27 1988-01-05 Exxon Research And Engineering Company Speech recognition method including biased principal components
US4713777A (en) * 1984-05-27 1987-12-15 Exxon Research And Engineering Company Speech recognition method having noise immunity
US5218668A (en) * 1984-09-28 1993-06-08 Itt Corporation Keyword recognition system and method using template concantenation model
US4991217A (en) * 1984-11-30 1991-02-05 Ibm Corporation Dual processor speech recognition system with dedicated data acquisition bus
US4783758A (en) * 1985-02-05 1988-11-08 Houghton Mifflin Company Automated word substitution using numerical rankings of structural disparity between misspelled words & candidate substitution words
US4897878A (en) * 1985-08-26 1990-01-30 Itt Corporation Noise compensation in speech recognition apparatus
DE3575829D1 (de) * 1985-10-30 1990-03-08 Ibm Synchronisiertes system fuer mehrere signalprozessoren.
US4776016A (en) * 1985-11-21 1988-10-04 Position Orientation Systems, Inc. Voice control system
JPS62220998A (ja) * 1986-03-22 1987-09-29 工業技術院長 音声認識装置
US5109492A (en) * 1986-09-19 1992-04-28 Hitachi, Ltd. Microprocessor which terminates bus cycle when access address falls within a predetermined processor system address space
US5027407A (en) * 1987-02-23 1991-06-25 Kabushiki Kaisha Toshiba Pattern recognition apparatus using a plurality of candidates
US5216748A (en) * 1988-11-30 1993-06-01 Bull, S.A. Integrated dynamic programming circuit
KR930008050B1 (ko) * 1990-02-16 1993-08-25 가부시끼가이샤 히다찌세이사꾸쇼 원칩 마이크로프로세서 및 그 버스시스템
ZA948426B (en) * 1993-12-22 1995-06-30 Qualcomm Inc Distributed voice recognition system
US6594628B1 (en) 1995-09-21 2003-07-15 Qualcomm, Incorporated Distributed voice recognition system
US6249761B1 (en) * 1997-09-30 2001-06-19 At&T Corp. Assigning and processing states and arcs of a speech recognition model in parallel processors
US7085710B1 (en) 1998-01-07 2006-08-01 Microsoft Corporation Vehicle computer system audio entertainment system
US6230135B1 (en) 1999-02-02 2001-05-08 Shannon A. Ramsay Tactile communication apparatus and method
US6574596B2 (en) 1999-02-08 2003-06-03 Qualcomm Incorporated Voice recognition rejection scheme
US6324509B1 (en) 1999-02-08 2001-11-27 Qualcomm Incorporated Method and apparatus for accurate endpointing of speech in the presence of noise
US6411926B1 (en) 1999-02-08 2002-06-25 Qualcomm Incorporated Distributed voice recognition system
US7379875B2 (en) * 2003-10-24 2008-05-27 Microsoft Corporation Systems and methods for generating audio thumbnails
US7697827B2 (en) 2005-10-17 2010-04-13 Konicek Jeffrey C User-friendlier interfaces for a camera
WO2020037620A1 (fr) * 2018-08-23 2020-02-27 深圳市汇顶科技股份有限公司 Procédé de traitement d'interruption, puce maîtresse, puce esclave et système multi-puce
WO2021079494A1 (fr) 2019-10-25 2021-04-29 ヤマハ発動機株式会社 Dispositif de sortie de données d'état de déplacement de véhicule inclinable et dispositif de détermination de compétence de manœuvre de véhicule inclinable
WO2021079497A1 (fr) 2019-10-25 2021-04-29 ヤマハ発動機株式会社 Appareil de commande de présentation d'informations en temps réel pour véhicule inclinable

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3940743A (en) * 1973-11-05 1976-02-24 Digital Equipment Corporation Interconnecting unit for independently operable data processing systems
US4059725A (en) * 1975-03-12 1977-11-22 Nippon Electric Company, Ltd. Automatic continuous speech recognition system employing dynamic programming
JPS5215242A (en) * 1975-07-28 1977-02-04 Nec Corp Mutual communication system among processors
GB1557286A (en) * 1975-10-31 1979-12-05 Nippon Electric Co Speech recognition
GB1569450A (en) * 1976-05-27 1980-06-18 Nippon Electric Co Speech recognition system
JPS5391645A (en) * 1977-01-24 1978-08-11 Japan Radio Co Ltd Composite microprocessor system
US4167653A (en) * 1977-04-15 1979-09-11 Nippon Electric Company, Ltd. Adaptive speech signal detector
US4087630A (en) * 1977-05-12 1978-05-02 Centigram Corporation Continuous speech recognition apparatus
JPS542050A (en) * 1977-06-07 1979-01-09 Nec Corp Block coding and decoding system
CA1116300A (fr) * 1977-12-28 1982-01-12 Hiroaki Sakoe Systeme d'identification/comparaison de l'expression orale
US4227176A (en) * 1978-04-27 1980-10-07 Dialog Systems, Inc. Continuous speech recognition method
US4227177A (en) * 1978-04-27 1980-10-07 Dialog Systems, Inc. Continuous speech recognition method
JPS5529803A (en) * 1978-07-18 1980-03-03 Nippon Electric Co Continuous voice discriminating device
JPS5569880A (en) * 1978-11-22 1980-05-26 Nec Corp Pattern recognition unit
JPS55157799A (en) * 1979-05-29 1980-12-08 Nippon Electric Co High efficiency pattern matching unit
US4354225A (en) * 1979-10-11 1982-10-12 Nanodata Computer Corporation Intelligent main store for data processing systems
US4336421A (en) * 1980-04-08 1982-06-22 Threshold Technology, Inc. Apparatus and method for recognizing spoken words
US4409652A (en) * 1980-09-12 1983-10-11 Siemens Ag Apparatus for processing digital signals

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113488024A (zh) * 2021-05-31 2021-10-08 杭州摸象大数据科技有限公司 一种基于语义识别的电话打断识别方法和系统
CN113488024B (zh) * 2021-05-31 2023-06-23 杭州摸象大数据科技有限公司 一种基于语义识别的电话打断识别方法和系统

Also Published As

Publication number Publication date
EP0108354A3 (fr) 1986-10-15
ES526988A0 (es) 1985-10-01
JPS59144967A (ja) 1984-08-20
US4567606A (en) 1986-01-28
JPS6146865B2 (fr) 1986-10-16
CA1198216A (fr) 1985-12-17
ES8601536A1 (es) 1985-10-01
EP0108354A2 (fr) 1984-05-16

Similar Documents

Publication Publication Date Title
BE898134A (fr) Equipement de traitement de donn es et syst&amp;me de reconnaissance de parole l&#39;utilisant.
FR2520911A1 (fr) Procede et appareil d&#39;analyse pour la reconnaissance de parole
EP0206847B1 (fr) Dispositifs de calcul de transformées cosinus, dispositif de codage et dispositif de décodage d&#39;images comportant de tels dispositifs de calcul
FR2502822A1 (fr) Dispositif et procede de reconnaissance de la parole
FR2520913A1 (fr) Procede et appareil de reconnaissance de mots-cles dans des paroles
CN110839173A (zh) 一种音乐匹配方法、装置、终端及存储介质
FR2923928A1 (fr) Systeme d&#39;interpretation simultanee automatique.
FR2523787A1 (fr) Procede et dispositif de traitement video pour rotation d&#39;images
EP0142179A1 (fr) Dispositif de création sonore
FR2587521A1 (fr) Appareil de traitement de signaux destine a effectuer des operations a resolutions multiples en temps reel
EP1259939B1 (fr) Procede et dispositif de perception automatique
FR2490369A1 (fr) Procede et circuit de reconnaissance d&#39;une chaine de caracteres
WO2021206804A1 (fr) Reconnaissance vocale de séquence à séquence avec seuil de latence
CH629320A5 (fr) Installation de traitement de donnees.
EP0089871A1 (fr) Dispositif de génération de signaux de test d&#39;équipements électroniques
CN111050187A (zh) 一种虚拟视频处理的方法、装置及存储介质
CN116934953A (zh) 驱动虚拟人说话和模型训练方法、装置、计算设备及系统
FR2482331A1 (fr) Procede d&#39;arbitration centralisee, et arbitreur centralise pour systeme multiprocesseur
FR2654283A1 (fr) Dispositif de mise au point automatique pour un systeme optique.
FR2543710A1 (fr) Systeme de traitement d&#39;images de figures
EP0043745B1 (fr) Système de traitement et de mémorisation de données numériques, notamment pour tomodensitomètre
CN113079387B (zh) 远程视讯录制方法、装置、设备及存储介质
CN112822501A (zh) 视频直播中的信息显示方法和装置、存储介质及电子设备
FR2593622A1 (fr) Installation de traitement de donnees, notamment d&#39;images, et circuits generateurs d&#39;adresse et de traitement arithmetique
FR3058253B1 (fr) Procede de traitement de donnees audio issues d&#39;un echange vocal, systeme et programme d&#39;ordinateur correspondant.

Legal Events

Date Code Title Description
RE Patent lapsed

Owner name: INTERNATIONAL STANDARD ELECTRIC CORP.

Effective date: 19871130