Brevet FR2773625A1 — publié le 19990716

MICROCONTROLEUR A VITESSE DE FONCTIONNEMENT AMELIOREE La présente invention concerne un circuit intégré comprenant un microprocesseur et au moins un circuit périphérique interne dont la vitesse de fonctionnement a été améliorée. Un circuit de ce type est un microcontrôleur. Les microcontrôleurs sont des systèmes généralement composés d'un microprocesseur ou unité centrale et d'une pluralité de circuits périphériques internes nécessaires au fonctionnement du système. Ces circuits périphériques internes sont, par exemple, une mémoire morte qui contient le programme que doit utiliser le microcontrôleur, une mémoire programmable ou un coprocesseur. Dans l'état actuel de la technique, la vitesse de fonctionnement des microcontrôleurs est fixée au moment de leur fabrication en fonction des circuits périphériques internes qu'ils contiennent. Cette vitesse est imposée par le signal d'horloge interne du microcontrôleur. Ce signal est fixe et sa période est choisie de manière à ce que l'ensemble des circuits périphériques internes du microcontrôleur puissent fonctionner correctement. Par exemple, si le microcontrôleur comporte une mémoire de type ROM et une mémoire de type EEPROM ayant respectivement des temps d'accès tl et t2, la période du signal d'horloge interne est prise supérieure ou égale au plus élevé des deux temps d'accès (en pratique t2) pour que la plus lente de ces deux mémoires disposent du temps nécessaire pour accomplir l'opération commandée par le microprocesseur. La durée d'un cycle d'horloge interne est donc en permanence supérieure ou égale à la durée du cycle de lecture ou de programmation de la mémoire la plus lente. De manière plus générale, cela permet de s'assurer que, quel que soit le circuit périphérique interne activé par le microprocesseur, ce dernier disposera du temps nécessaire pour traiter l'instruction en provenance du microprocesseur. La vitesse de fonctionnement du microcontrôleur est par conséquent imposée par le circuit périphérique interne le plus lent du microcontrôleur. Le fonctionnement global du microcontrôleur s'en trouve alors pénalisé. Dans l'invention, on prévoit de remédier à cet inconvénient en adaptant la vitesse de fonctionnement du microcontrôleur au temps opératoire du circuit périphérique interne activé par le microprocesseur. Aussi, l'invention a pour objet un circuit intégré comprenant un microprocesseur piloté par un signal d'horloge interne et au moins un circuit périphérique interne activé sélectivement par ledit microprocesseur pour effectuer une opération, caractérisé en ce qu'il comporte des moyens pour adapter la période dudit signal d'horloge interne en fonction du temps opératoire du circuit périphérique interne activé. La vitesse de fonctionnement du circuit intégré est alors adaptée aux conditions d'utilisation du circuit. Ainsi, la vitesse de fonctionnement du circuit intégré est plus élevée lorsqu'on active une mémoire rapide que lorsqu'on active une mémoire lente. Cette adaptation du signal d'horloge interne permet également de se prémunir contre des variations éventuelles des procédés de fabrication des éléments du circuit. Pour adapter la période du signal d'horloge interne, on prévoit selon l'invention de supprimer les impulsions du signal d'horloge interne pendant le temps opératoire de l'opération effectuée dans le circuit périphérique interne activé. Aussi, les moyens pour adapter la période dudit signal d'horloge interne comprennent: - un circuit de génération de signaux d'horloge pour générer un signal d'horloge primaire se présentant sous la forme d'une série d'impulsions imposant une vitesse de traitement au microprocesseur, et - un circuit de transformation du signal d'horloge primaire pour supprimer les impulsions dudit signal d'horloge primaire pendant le temps opératoire de ladite opération commandée par le microprocesseur dans ledit circuit périphérique interne activé afin d'adapter la période dudit signal d'horloge interne en fonction du temps opératoire du circuit périphérique interne activé, ledit circuit de transformation délivrant le signal d'horloge interne. Ainsi, le temps pendant lequel les impulsions du signal d'horloge primaire sont supprimées est fonction du circuit périphérique interne activé. Pour que le microprocesseur bénéficie d'une marge de sécurité entre deux opérations, on peut également prévoir, dans les circuits périphériques internes, des moyens supplémentaires pour effectuer, parallèlement à l'opération principale commandée par le microprocesseur, une seconde opération dont le temps opératoire est légèrement supérieur à celui de l'opération principale. Les impulsions du signal d'horloge primaire sont alors supprimées pendant le temps opératoire de cette seconde opération. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels - la figure 1 est un schéma global d'un exemple de circuit intégré selon l'invention; - la figure 2 est un mode de réalisation possible d'un circuit de transformation selon l'invention, - les figures 3A à 3E représentent des chronogrammes de signaux associés au circuit de transformation de la figure 2, et - la figure 4 est un exemple de circuit périphérique interne comportant des moyens supplémentaires pour effectuer une seconde opération. En se référant à la figure 1, le circuit intégré de l'invention se compose d'un microprocesseur 1 auquel sont reliés, par l'intermédiaire d'un bus de connexion 6, trois circuits périphériques internes: une mémoire 3 de type ROM, une mémoire 4 de type EEPROM et un coprocesseur 5. Ces trois circuits périphériques internes sont activés sélectivement par des moyens de sélection 2. Des signaux CS1, CS2 et CS2 servant à activer respectivement la mémoire 3, la mémoire 4 et le coprocesseur 5 sont délivrés par les moyens de sélection 2, lesquels sont commandés par le microprocesseur 1. Un signal d'horloge interne CKint issu d'un circuit d'horloge 7 est fourni au microprocesseur 1. Ce signal d'horloge est généré à partir d'un signal d'horloge externe CKext produit généralement par un quartz. Le séquencement des opérations dans le microprocesseur est alors rythmé par les impulsions du signal d'horloge interne CKint Selon l'invention, le rythme du signal CKint est modulé en fonction du temps opératoire du circuit périphérique interne activé. Le temps opératoire dans un circuit périphérique interne correspond au temps nécessaire pour exécuter une opération dans ce circuit. Pour mettre en oeuvre cette adaptation du signal CKint, le circuit d'horloge 7 se présente sous la forme suivante: il comporte un circuit de génération de signaux d'horloge 8 pour générer un signal d'horloge primaire CK p à partir du signal d'horloge externe CKext et un circuit de transformation 9 du signal d'horloge primaire CKssp, lequel circuit délivre le signal d'horloge interne CKint Le circuit de génération 8 est chargé de produire un signal d'horloge primaire CKp fixant la vitesse de traitement des opérations effectuées à l'intérieur du microprocesseur 1. Lorsque le microprocesseur 1 n'active pas de circuit périphérique interne, le signal primaire est appliqué tel quel sur l'entrée d'horloge du microprocesseur 1. La vitesse de traitement du microprocesseur est alors maximale. En revanche, lorsque le microprocesseur lance par exemple une opération de lecture dans la mémoire 3 ou 4 ou une opération de calcul dans le coprocesseur 5, le microprocesseur doit attendre la fin de cette opération avant d'en lancer une autre. I1 faut alors ralentir la vitesse de traitement du microprocesseur. A cet effet, le circuit d'horloge 7 comporte le circuit de transformation 9 chargé de transformer le signal d'horloge primaire CKpp. L'opération de transformation consiste à supprimer des impulsions dans le signal CKpp pour ralentir la vitesse de traitement du microprocesseur. I1 supprime les impulsions du signal d'horloge primaire CKssp pendant le temps opératoire de l'opération lancée par le microprocesseur, c'est-à-dire tant que l'opération commandée par le microprocesseur n'est pas achevée. Pour effectuer cette suppression, le circuit de transformation 9 reçoit, en plus du signal d'horloge primaire CKpp en provenance du circuit de génération 8, des signaux de début et de fin de suppression des impulsions. Dans l'exemple de la figure 1, les signaux de début de suppression correspondent aux signaux de sélection CS1, CS2 et CS3 destinés à sélectionner respectivement la mémoire ROM 3, la mémoire EEPROM 4 et le coprocesseur 5. Ces signaux sont non recouvrants et leur front montant marque le début de la fenêtre de suppression des impulsions. Un autre signal en provenance du circuit périphérique interne activé marque ensuite la fin de la fenêtre de suppression. Ces signaux de fin de suppression sont référencés F1, F2, F3 sur la figure 1. Les signaux F1, F2 associés respectivement aux mémoires 3 et 4 sont par exemple des signaux dont l'état indique si les données lues sont disponibles dans le registre de sortie de données de la mémoire correspondante. De même, le signal F3 associé au coprocesseur 5 peut être un signal indiquant que la donnée calculée se trouve dans le registre de sortie du coprocesseur. Un mode de réalisation du circuit de transformation 9 est illustré figure 2. I1 comprend autant de bascules de type JK qu'il y a de circuits périphériques internes dans le circuit intégré. Le circuit 9 de la figure 2 étant destiné au circuit intégré de la figure 1, il comporte par conséquent trois bascules 11, 12 et 13 associées respectivement à la mémoire ROM 3, à la mémoire EEPROM 4 et au coprocesseur 5. Les signaux CS1, CS2, CS3 et les signaux F1, F2, F3 sont appliqués respectivement sur les entrées de mise à un et les entrées de mise à zéro des bascules 11, 12, 13. Les sorties des bascules 11, 12 et 13 sont reliées chacune à une entrée d'une porte logique 14 de type NON OU à trois entrées. La sortie de la porte logique 14 est connectée à une entrée d'une porte logique 16 de type ET à deux entrées par l'intermédiaire d'un circuit à retard 15. Le circuit à retard 15 décale temporellement le signal issu de la porte logique 14 d'une durée T1, le retard T1 correspondant à la durée de l'état haut du signal d'horloge primaire CKUp. Le retard T1 a pour but de conserver intact l'impulsion du signal CKyp qui déclenche la sélection de la mémoire. Le circuit à retard 15 peut être inutile lorsque les bascules 13, 14, 15 et la porte logique 14 engendrent déjà le retard T1. A désigne le signal à la sortie du circuit à retard 15. La porte logique 16 reçoit par ailleurs sur sa deuxième entrée le signal d'horloge primaire CKpp. La porte logique 16 délivre le signal d'horloge interne CKint Le fonctionnement du circuit transformation 9 est illustré par les figures 3A à 3E. Ces figures représentent respectivement les chronogrammes des signaux CKssp, I CS1, F1, A et CKint lorsque le microprocesseur 1 déclenche deux opérations de lecture consécutives dans la mémoire ROM 3. Pour sélectionner la mémoire 3, le signal CSî est mis à 1; la sortie de la bascule 11 passe alors à 1 et le signal A passe à 1 avec un décalage de temps T1; pendant l'état 1 du signal A, les impulsions du signal CKssp sont supprimées et le signal A ne repasse à 0 que lorsque le signal F1 passe à 1; il en résulte le signal CKint représenté à la figure 3E. Selon un mode de réalisation en variante, on peut prévoir d'insérer dans chaque circuit périphérique interne des moyens supplémentaires pour effectuer une seconde opération parallèlement à l'opération principale commandée par le microprocesseur. C'est alors cette seconde opération qui détermine la fenêtre temporelle de suppression des impulsions. Le temps opératoire de la seconde opération est bien entendu légèrement supérieur à celui de l'opération principale pour assurer une marge de sécurité entre deux opérations. La figure 4 illustre une mémoire EEPROM munie de moyens supplémentaires telles que définies précédemment. La mémoire comporte de manière classique une matrice 20 de cellules mémoire reliés à un décodeur de lignes 21 et un décodeur de colonnes 22 associés à des circuits de lecture et d'écriture 23. L'écriture de la matrice 20 est effectuée au moyen d'un circuit de programmation 24. Les décodeurs 21 et 22 sont reliés à un registre d'adresses AD-R qui reçoit des adresses AD en provenance du bus d'adresses. Les circuits de lecture et d'écriture 23 sont reliés respectivement à un registre de données de sortie DT0-R et à un registre de données d'entrée DTi-R, lesquels registres sont reliés au bus de données du circuit intégré. L'ensemble est commandé par un circuit de commande 25 qui reçoit des commandes CD en provenance du bus de commande du circuit intégré. Il reçoit en particulier la commande de sélection CS2. Pour la mise en oeuvre du mode de réalisation en variante, la mémoire est complétée par une colonne 26 de cellules mémoire supplémentaires appelées cellules témoin et de moyens 27 pour les lire. La colonne 26 est reliée au décodeur de lignes 21 et aux moyens 27. Par cette structure, à chaque ligne de la matrice est associée 20 une cellule témoin. Les moyens de lecture 27 sont par ailleurs commandés par le circuit de commande 2 de la mémoire. Cette mémoire fonctionne de la manière suivante la lecture d'une cellule mémoire de la matrice 1 (opération principale) déclenche la lecture de la cellule témoin (seconde opération) connectée à la même ligne de mot. Dans ce mode de réalisation, la cellule témoin mémorise de préférence un "1" qui, lors de sa lecture, active alors une bascule 28 de type RS générant le signal F2. Le signal F2 est remis à zéro par le circuit de commande 2 de la mémoire. La cellule témoin étant située à l'extrémité de la matrice de la mémoire, le temps de lecture de la cellule témoin est nécessairement supérieur à celui de la cellule de la matrice. Dans cet exemple de réalisation, les impulsions du signal CKssp sont supprimées pendant l'opération de lecture de cette cellule témoin. De même, pour des circuits périphériques internes autres que des mémoires, on peut prévoir des moyens permettant d'activer un chemin équivalent au chemin de lecture des cellules témoins des mémoires afin de définir une fenêtre temporelle de suppression adaptée à ces circuits. REVENDICATIONS 1 - Circuit intégré comprenant un microprocesseur (1) piloté par un signal d'horloge interne (CKint) et au moins un circuit périphérique interne (3, 4, 5) activé sélectivement par ledit microprocesseur pour effectuer une opération, caractérisé en ce qu'il comporte des moyens pour adapter la période dudit signal d'horloge interne (CKint) en fonction du temps opératoire du circuit périphérique interne activé. 2 - Circuit intégré selon la revendication 1, caractérisé en ce que les moyens pour adapter la période dudit signal d'horloge interne (CKint) comprennent: - un circuit de génération de signaux d'horloge (8) pour générer un signal d'horloge primaire (CKp) se présentant sous la forme d'une série d'impulsions imposant une vitesse de traitement au microprocesseur (1), et - un circuit de transformation (9) du signal d'horloge primaire (CKZp) pour supprimer les impulsions dudit signal d'horloge primaire pendant le temps opératoire de ladite opération commandée par le microprocesseur dans ledit circuit périphérique interne activé afin d'adapter la période dudit signal d'horloge interne (CKint) en fonction du temps opératoire du circuit périphérique interne activé, ledit circuit de transformation (9) délivrant le signal d'horloge interne (CKint) 3 - Circuit intégré selon la revendication 1, caractérisé en ce que les moyens pour adapter la période dudit signal d'horloge interne (CKint) comportent: - des moyens dans chaque circuit périphérique interne pour effectuer une seconde opération parallèlement à ladite opération commandée par le microprocesseur, le temps opératoire de ladite seconde opération étant égal ou légèrement supérieur à celui de l'opération commandée par le microprocesseur, - un circuit de génération de signaux d'horloge (8) pour générer un signal d'horloge primaire (CKbp) se présentant sous la forme d'une série d'impulsions imposant une vitesse de traitement au microprocesseur (1) - un circuit de transformation (9) du signal d'horloge primaire (CK p) pour supprimer les impulsions dudit signal d'horloge primaire pendant ladite seconde opération afin d'adapter la période dudit signal d'horloge interne (CKint) en fonction du temps opératoire du circuit périphérique interne activé, ledit circuit de transformation (9) délivrant le signal d'horloge interne (CKint). 4 - Circuit intégré selon la revendication 2 ou 3, caractérisé en ce que ledit circuit de génération de signaux d'horloge (8) génère ledit signal d'horloge primaire (CK4p) à partir d'un signal d'horloge externe (CKext).