Brevet FR2596890A1 — publié le 19871009

L'invention a trait en général au domaine du traitement de données informatiques et plus particulièrement à un circuit pour le décodage anticipé des programmes ou codes d'opération dans le but de commander le fonctionnement du processeur. Il est bien connu, dans le domaine technique du traitement des données, de prévoir une logique dans l'ordinateur afin de décoder la partie d'une instruction que l'on appelle "code d'opération", ou en abrégé "code op". Le "code op" se réfère essentiellement à une fonction particulière dévolue à l'ordinateur, par exemple le transfert de données entre des re10 gistres, l'accès à la mémoire, l'addition des contenus de deux registres, etc. Dans le fonctionnement d'un système ordinaire à processeur, les instructions sont extraites successivement de la mémoire, et la logique de décodage du code d'opération décode le "code op", de façon qu'un cir15 cuit logique approprié prévu dans le processeur puisse engendrer les signaux de commande corrects pour contrôler le fonctionnement spécifique du processeur. Dans cette technologie il existe une demande importante pour ce qui concerne les modes qui permettent d'augmenter la capacité de traitement 20 de l'unité de traitement des données. Par conséquent, l'un des buts de la présente invention consiste à prévoir une logique perfectionnée pour le décodage d'instructions dans un système informatique. Un autre but de la présente invention consiste à prévoir un circuit 25 auxiliaire de décodage du code d'opération ou "code op " dans un système de traitement des données afin de produire un décodage anticipé des codes d'opération. L'invention a également pour but d'accélérer ou de contr8ler l'accès à la mémoire par un ordinateur, et de prévoir la génération d'adresses 30 par un ordinateur, en réponse à des codes d'opération prédéterminés. Ces différents buts ainsi que d'autres encore sont réalisés, suivant un mode préféré de réalisation de l'invention, grâce à un système de traitement de données qui comprend une mémoire pour stocker l'information, y compris les instructions, chaque instruction comportant un code d'opéra35 tion; un premier processeur comprenant un premier dispositif à logique de décodage de codes d'opération; un canal ou bus des données reliant ce premier processeur à ladite mémoire; et un second dispositif à logique de décodage de codes d'opération, couplé au canal des données et sensible à la présence d'un code d'opération sur ce canal des données afin de décoder le -2 code d'opération et d'engendrer au moins un signal de commande. L'invention sera maintenant décrite en détail en se référant au dessin annexé. Toutefois, d'autres caractéristiques de l'invention ressortiront davantage et son mode de fonctionnement appara tra plus clairement à la lecture de la description détaillée qui suit; sur le dessin: Les FIGURES 1A et lB, mises bout-à-bout, montrent le schéma synoptique détaillé d'un système de traitement des données sous forme d'un système d'acquisition des données, auquel on a incorporé un circuit pour le décodage et la comparaison anticipés du code d'opération suivant la pré10 sente invention, et La FIGURE 2 montre un schéma synoptique plus détaillé d'un mode préféré de réalisation de circuit de décodage et de comparaison anticipée du code d'opération suivant la présente invention. Les Figures 1A et lB montrent ensemble un schéma synoptique d'un 15 système d'acquisition des données qui comprend le circuit conçu pour le décodage et la comparaison anticipés du code d'opération suivant la présente invention. Le système d'acquisition des données comprend une partie d'échantillonnage et de conversion en numérique 10. Cette partie 10 comprend des 20 amplificateurs d'échantillonnage et de maintien 11, un multiplexeur 12, un convertisseur analogique/numérique 13, et un registre de contrôle d'entrée 14. L'ensemble à interface comprend en outre un processeur d'interface branché entre un canal d'échange de données d'interface 130 et un ca25 nal d'échange de données d'adresses 153. Un programme PROM 152 mémorise les programmes et/ou les données pour commander le fonctionnement du processeur d'interface 160. Suivant un mode préféré de réalisation, le processeur d'interface est un processeur de signaux numériques commercialisé par Texas Ins30 truments, Inc. Ce processeur d'interface 160 fournit l'intelligence à l'unité d'interface et peut être programmé de manière à offrir des états souples de fonctionnement et à effectuer diverses fonctions de traitement de signaux numériques. Il fonctionne à une vitesse suffisante pour lui permettre de commander directement les opérations d'acquisition de données 35 de la partie échantillonnage/conversion en numérique 10, et aussi d'assurer d'autres opérations de commnande de l'unité d'interface. Si l'on se réfère à la Figure 1A, on voit que l'unité d'interface comprend également une mémoire de données RAM 136 qui permet de stocker temporairement les données et les instructions. Cette mémoire RAM 136 est à double accès, et l'on peut y accéder soit par le processeur d'interface 160, soit par les canaux du système 110 associés à l'ordinateur principal 100. La mémoire deedonnées RAM 136 est reliée par l'émetteur/récepteur 146 et le canal des données RAM 138 au canal d'échange des données d'interface 130. En outre, la mémoire des données 136 est reliée au canal des données 110 de l'ordinateur central par l'intermédiaire de la bascule des données 140, du canal des données locales 150, de l'émetteur/récepteur 118 des canaux de données de l'ordinateur central et du canal des données 115. La logique de commande RAM 122 contrôle l'arbitrage des données d'accès à la mémoire RAM 136 entre le processeur d'interface 160 et les canaux du système 110. Le processeur d'interface 160 a constamment la priorité d'accès. Le générateur d'adresses RAM 138 et le générateur d'adresses de mé15 moire RAM du processeur à interface 132 sont soumis à la logique de commande RAM 122 afin d'engendrer des adresses RAM adéquates transmises par le canal d'adresses RAM 134. Le décodeur central et modificateur d'adresses 116, la logique d'interruption 117 et la logique de commande 120 assurent différentes 20 fonctions d'adressage et de commande au système central, par rapport à l'unité d'interface. L'ordinateur central 100 est relié aux canaux 110 du système par l'intermédiaire d'un canal distinct 102. L'ordinateur central 100 peut être n'importe quel type d'ordinateur approprié. La mémoire 101 associée 25 au système central est reliée aux canaux 110 du système par un autre canal particulier 103. Selon un mode préféré de réalisation, les canaux 110 du système sont constitués par un faisceau de canaux conforme à la norme VME relative aux canaux ou bus. Des logiques programmables (FPLA) et en particulier des dispositifs 30 à logique programmable (PAL) que l'on trouve couramment dans le commerce, notamment dans la production de la Société Monolithic Memories, Inc., sont utilisés dans de nombreux circuits logique de commande de la présente invention, comme c'est le cas par exemple pour le décodeur à modification d'adresses 116, la logique d'interruption 117, la logique de commande 120, 35 le générateur d'adresses 128 pour mémoires RAM, le générateur d'adresses pour mémoire RAM du processeur d'interface 132, et la logique de commande RAM 122. En service réel, l'unité à interface représentée sur les Figures 1A et 1B mises bout-à-bout réceptionne les données analogiques au taux d'échantillonnage déterminé par le processeur d'interface 160 ou par une source extérieure de déclenchement 162. Le processeur à interface 160 peut traiter les données en temps réel et les stocker dans la mémoire des données RAM 136 à laquelle l'ordinateur central 100 peut accéder à travers les canaux 110 du système. Ainsi, on peut échantillonner de façon continue des signaux analogiques, et cela à des taux fixes, indépendamment d'événements asynchrones pouvant se produire dans le système central, par exemple la regénération de la mémoire dynamique RAM et l'exécution d'autres taches. La Figure 2 est un schéma synoptique plus détaillé d'un mode préféré de réalisation du circuit de décodage et de comparaison anticipés du code d'opération; ce circuit, dans le mode particulier de réalisation que montre la Figure 2, se présente sous forme d'une logique de commande RAM 122, laquelle est soumise au tronçon 124 du canal d'interface 210. Le tron15 çon de canal 124 sert également de conducteur pour les instructions de programme qui proviennent de la mémoire PROM 152 et qui doivent être transmises au processeur d'interface 160. Lorsque la partie code d'opération d'une instruction est placée sur le canal des données 210 pendant la partie recherche de code d'opération 20 d'un cycle d'instructions (c'est-à-dire lorsque le signal d'autorisation de mémoire MEM est actif), la logique de commande 122 de la mémoire RAM en effectue la lecture. Suivant un mode préféré de réalisation de l'invention, la logique de commande RAM 122 comprend un. ou plusieurs réseaux logiques programma25 bles (RLP) dont le choix spécifique relève de la conception classique des circuits électroniques. Sensibles aux signaux de code d'opération qui circulent dans le tronçon de canal 124, les réseaux logiques programmables (RLP) de la logique de commande 122 engendrent des signaux de commande appropriés, tels que l'exige la commande des différentes parties du sys30 tème représenté sur les Figures 1A et lB. Bien que l'on puisse appliquer le concept sur lequel repose la présente invention à la génération et/ou la combinaison de signaux de commande pour toutes les applications envisagées, en réponse à la présence d'un signal de code d'opération sur le canal des données, suivant un mode 35 préféré de réalisation le circuit de décodage et de comparaison anticipés est utilisé dans au moins trois buts: (1) commande de la mémoire RAM à double accès et arbitrage entre les demandes de l'ordinateur central 100 et le processeur d'interface 160, (2) génération anticipée d'adresses pour le processeur d'interface 160, et (3) interdiction d'accès du processeur -5 d'interface 160 à la mémoire RAM à double accès 136 dans le cas de certaines instructions, par exemple dans certains transferts de registre à registre. En ce qui concerne la fonction de commande de la mémoire RAM à dou5 ble accès, ainsi qu'il est mentionné ci-dessus, la mémoire RAM 136 comporte deux acces auxquels peuvent accéder tant les canaux du système 110 que le processeur d'interface 160. Ce dernier doit cependant avoir priorité d'accès, car il accède de façon synchrone et ne peut pas assumer le mode dit "état d'attente" pendant l'accès à la mémoire. Toutefois, les canaux 10 du système 110 sont asynchrones, ce qui permet d'insérer des "états d'attente" dans son cycle d'accès aux mémoires. Si l'on se réfère à la Figure 1A, on voit que le générateur d'adresses 128 de la mémoire centrale RAM peut être validé sur le canal d'adresses 134 de la mémoire RAM jusqu'au moment o le processeur d'interface 160 15 demande l'accès. Lorsque cette demande se produit, il faut un temps déterminé pour que le générateur d'adresses 128 de la mémoire RAM soit invalidé par rapport au canal 134, et pour revalider le générateur d'adresses 132 de la mémoire RAM du processeur d'interface, avant que l'accès à la mémoire RAM soit rétabli. Dans un mode préféré de réalisation de l'interface, le processeur d'interface 160 est constitué par un dispositif fonctionnant à très grande vitesse, de telle sorte que l'on ne dispose que de très peu de temps lorsqu'on utilise ses signaux normaux de commande de lecture/enregistrement, à moins d'avoir recours à une technologie d'un coût prohibitif. 25 Toutefois, si l'on effectue un décodage anticipé des signaux de commande de lecture/enregistrement du processeur d'interface 160, on parvient à satisfaire aux conditions de temps et de capacité de traitement. Le processeur d'interface 160 assure une pré-recherche du code d'opération suivant, à partir de la mémoire PROM 152, pendant l'exécution de 30 l'instruction courante. Ainsi, le code d'opération apparaIt sur le canal des données d'interface 138 pendant le cycle, avant son exécution. Ensuite, le code d'opération est décodé, comme indiqué plus haut, en utilisant un circuit approprié qui utilise des comparateurs et une logique à circuits discrets, par exemple des logiques programmables PLA. Attendu que le code 35 d'opération est décodé avant le cycle d'exécution, le résultat est que les décisions de conmmande d'accès à la mémoire RAM à double accès sont prises avant que les signaux lecture/enregistrement soient engendrés par le processeur d'interface 160. Dans ces conditions, si le code d'opération décodé nécessite un -6 accès (par le processeur d'interface 160) à la mémoire RAM 136 à double accès, le générateur d'adresses 128 de la mémoire centrale RAM peut être invalidé par rapport au canal d'adresses 134 de la mémoire RAM, et l'on peut valider le générateur d'adresses 132 du processeur d'interface avant l'apparition des signaux de commande d'accès à la mémoire du processeur d'interface. En ce qui concerne la génération anticipée d'adresses par l'exécution d'une comparaison anticipée du code d'opérations pendant la période de recherche préalable, le générateur d'adresses 132 de la mémoire RAM du 10 processeur d'interface peut assurer ses fonctions avant la génération d'un signal lecture/enregistrement par le processeur d'interface 160. Ainsi qu'il a été indiqué plus haut, le circuit décrit ici possède la capacité d'invalider l'accès à la mémoire par le processeur d'interface 160 pendant certains codes d'opérations, par exemple pendant l'exé15 cution d'une instruction visant à transférer des données entre une partie de la mémoire des données et une partie de la mémoire des programmes. Pour empcher le circuit de comparaison anticipée de code d'opération d'interpréter de façon erronée des données qui se trouvent sur le canal 210 en tant que code d'opération, dès que la logique de commande 122 de la mémoi20 re RAM détecte un code d'opération concernant ce type d'instruction de transfert de données, elle neutralise la mémoire à double accès 136 en produisant un ou plusieurs signaux de commande de type approprié. Les différents signaux de commande sont engendrés par des circuits appropriés de décodage dans la logique de commande 122 de la mémoire RAM 25 que tout spécialiste dans l'art peut facilement réaliser. Il est évident aussi pour tout spécialiste dans le domaine de l'invention que le processeur ou ordinateur de traitement des données décrit cidessus, avec comparaison anticipée du code d'opération, peut être modifié de différentes façons et être réalisé sous des aspects autres que 30 celui représenté et décrit, sans s'écarter pour autant des principes de base de l'invention. - 7 REVENDICATIONS R E V E N D I C A T I 0 N S 1. Système de traitement de données informatiques caractérisé par le fait qu'il comprend: a) une mémoire (101) pour stocker les informations qui com5 prennent des instructions, chaque instruction comportant un code d'opération; b) un premier processeur (100) qui comprend un premier circuit logique décodeur de codes d'opération (116); c) un canal des données (115) qui relie le premier processeur 10 (100) à ladite mémoire (101), et d) un second circuit logique (117) relié audit canal des données (110) et sensible à la présence d'un code d'opération sur ce canal (110) après décodage de ce code d'opération et génération d'au moins un signal de commande. 2. Système de traitement de données informatiques selon la Revendication 1, caractérisé par le fait qu'il comprend: a) un second processeur (160) relié au bus des données (110) et qui nécessite l'accès à ladite mémoire (101), et b) une logique d'arbitrage de mémoire (122) sensible audit si20 gnal de commande pour relier soit le premier processeur (100),soitle second processeur (160) à ladite mémoire (101) en réponse au contenu informatique dudit signal de commande. 3. Système de traitement de données informatiques selon la Revendication 1, caractérisé par le fait que le premier processeur recherche 25 une instruction dans la mémoire (101) pendant que le premier circuit logique décodeur de code d'opération (116) décode une instruction précédemment cherchée. 4. Système de traitement de données informatiques selon la Revendication 2, caractérisé par le fait qu'il comprend: a) un premier générateur d'adresses de mémoire (128) associé au premier processeur (100), et sensible audit circuit logique d'arbitrage de mémoire (122), et b) un second générateur d'adresses de mémoire (132) associé au second processeur (160) et également sensible audit circuit logique d'ar35 bitrage de mémoire (122). 5. Système de traitement de données informatiques selon la Revendication 4, caractérisé par le fait qu'il comprend un dispositif pour engendrer au moins un signal d'accès à la mémoire en réponse à un code d'opération prédéterminé, et que ledit second circuit logique de décodage du -- 8 code d'opération a pour rôle de décoder ledit code d'opération prédéterminé et d'engendrer au moins un signal de commande avant la génération dudit signal d'accès à la mémoire, de façon que le premier moyen générateur d'adresses de mémoire (128) soit actionné avant la génération dudit signal d'accès à la mémoire. 6. Système de traitement de données informatiques selon la Revendication 5, caractérisé par le fait que le second moyen générateur d'adresses de mémoire (132) est débranché en réponse audit signal de commande, avant la génération dudit signal d'accès à la mémoire. 7. Système de traitement de données informatiques selon la Revendication 1, caractérisé par le fait qu'il comprend un premier dispositif (128) générateur d'adresses de mémoire, associé audit premier processeur (100) et sensible au signal de commande afin d'amorcer un cycle d'accès à la mémoire avant le décodage dudit code d'opération par ledit premier 15 circuit logique (116) décodeur de code d'opération. 8. Système de traitement de données informatiques selon la Revendication 1, caractérisé par des moyens (118) propres à interdire l'accès du premier processeur (100) à ladite mémoire (136) lorsqu'un code d'opération est décodé par le second circuit logique décodeur de code d'opé20 ration, de façon à interdire au premier processeur (100) l'accès à ladite mémoire (136) dès que ledit code d'opération prédéterminé est présent sur ledit canal des données (124).