Brevet FR2859293A1 — publié le 20050304

PROCÉDÉ ET SYSTÈME POUR DES TRANSFERTS DE DONNÉES PLUS EFFICACES VERS DES UNITÉS DE MÉMOIRE EXTERNES DANS DES CIRCUITS AYANT DES CONTRâLEURS DE MÉMOIRE MULTIPLES La présente invention concerne l'amélioration des transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples. Dans de nombreux dispositifs de circuits intégrés, un microcontrôleur est utilisé pour commander plusieurs types de mémoire, par exemple des mémoires dynamiques (SDRAM/FLASH), des mémoires statiques (SRAM/EEPROM), etc. Lorsque plusieurs types de mémoire sont commandés par un microcontrôleur, il est difficile d'avoir une série complète de lignes dédiée pour les signaux d'adresses, de données, et de contrôle, pour chaque type de mémoire, car ceci entraînerait une augmentation indésirable du nombre de broches du dispositif de circuits intégrés. Multiplexer le bus d'adresses avec le bus de données est un procédé bien connu pour réduire le nombre de broches du dispositif de circuits intégrés et requiert l'utilisation d'une logique externe additionnelle entre le microcontrôleur et l'unité de mémoire. Lorsque aucune logique externe additionnelle n'est désirée, le multiplexage de chaque série de lignes de signaux à l'intérieur du microcontrôleur entre les contrôleurs de mémoire peut toujours être effectué. Cependant, lorsqu'un contrôleur de mémoire requiert qu'une partie du bus d'adresses commun exécute un rafraîchissement, aucun transfert de données ne peut alors être effectué en même temps sur l'autre contrôleur. En conséquence, un système et un procédé sont requis pour améliorer les transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples. La présente invention répond à un tel besoin. Des aspects pour améliorer les transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples sont décrits. Les aspects comprennent l'étape consistant à fournir un ensemble de circuits contrôleur à l'intérieur d'un microcontrôleur pour des mémoires statiques et dynamiques, l'ensemble de circuits contrôleur comprenant une sortie de sélection de rafraîchissement. La sortie de sélection de rafraîchissement est utilisée pour permettre la sélection d'une mémoire statique pendant le rafraîchissement de la mémoire dynamique. La sortie de sélection de rafraîchissement comprend une partie dupliquée d'un bus d'adresses. Grâce à la présente invention, les transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples sont exécutés plus efficacement. L'efficacité accrue résulte d'une capacité à permettre des transferts de données par un contrôleur de mémoire statique pendant qu'une unité de mémoire dynamique est sujette à un rafraîchissement. Ces avantages ainsi que d'autres ressortiront plus clairement à la lecture de la description détaillée suivante faite en référence aux dessins annexés. L'invention concerne ainsi un procédé pour améliorer les transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples, le procédé comprenant l'étape consistant à : fournir un ensemble de circuits contrôleur à l'intérieur d'un microcontrôleur pour des mémoires statiques et dynamiques, l'ensemble de circuits contrôleur comprenant une sortie de sélection de rafraîchissement; dans lequel la sortie de sélection de rafraîchissement permet la sélection de la mémoire statique pendant le rafraîchissement de la mémoire dynamique. Avantageusement, la sortie de sélection de rafraîchissement comprendra en outre une partie dupliquée d'un bus système interne du microcontrôleur. Dans ce cas, de préférence, la partie dupliquée du bus système interne pourra comprendre en outre une partie dupliquée du bus d'adresses. La partie dupliquée du bus d'adresses pourra comprendre en outre un bit unique du bus d'adresses. Le bit unique pourra également comprendre en outre le bit dix du bus d'adresses. Avantageusement, l'étape consistant à fournir un ensemble de circuits contrôleur comprend en outre l'étape consistant à fournir un contrôleur de mémoire dynamique pour commander la sortie de sélection de rafraîchissement. La présente invention se rapporte également à un système pour améliorer les transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples, le système comprenant: au moins une unité de mémoire statique; - au moins une unité de mémoire dynamique; et - un circuit contrôleur couplé à la (ou les) unité(s) de mémoire statique et une unité de mémoire dynamique, le circuit contrôleur comprenant une sortie de sélection de rafraîchissement pour permettre la sélection de la (ou les) unité(s) de mémoire statique pendant le rafraîchissement de la (ou les) unité(s) de mémoire dynamique. Avantageusement, la sortie de sélection de rafraîchissement comprendra en outre une partie dupliquée d'un bus d'adresses. De préférence, la partie dupliquée du bus d'adresses comprendra en outre un bit unique du bus d'adresses. Le bit unique pourra comprendre en outre le bit dix du bus d'adresses. Avantageusement, le circuit contrôleur pourra en outre comprendre au moins un contrôleur de mémoire statique et au moins un contrôleur de mémoire dynamique. Le (ou les) contrôleur(s) de mémoire statique et le (ou les) contrôleur(s) de mémoire dynamique comprendront en outre des modules d'un circuit d'interface de bus externe d'un microcontrôleur. Avantageusement, le contrôleur de mémoire dynamique du circuit contrôleur pourra commander la sortie de sélection de rafraîchissement. L'invention se rapporte enfin également à un circuit pour améliorer les transferts de données vers des unités de 25 mémoire externes, le circuit comprenant: - un contrôleur de mémoire statique pour contrôler la sélection d'une unité de mémoire statique, le contrôleur de mémoire statique utilisant au moins un bus d'adresses pour les transferts de données vers l'unité de mémoire statique; et - un contrôleur de mémoire dynamique pour contrôler la sélection d'un module de mémoire dynamique et pour commander une partie dupliquée du bus d'adresses afin de permettre un transfert de données par le contrôleur de mémoire statique pendant un processus de rafraîchissement du module de mémoire dynamique. Avantageusement, la partie dupliquée pourra en outre comprendre un bit d'adresse unique. Le bit d'adresse unique pourra en outre comprendre le bit dix du bus d'adresses. Avantageusement, le contrôleur de mémoire statique et le contrôleur de mémoire dynamique comprendront des modules d'un circuit d'interface de bus externe. De préférence, le circuit d'interface de bus externe comprendra en outre un module d'un circuit intégré de microcontrôleur. La figure 1 illustre un schéma de principe d'un circuit intégré type ayant un microcontrôleur couplé à des mémoires externes. La figure 2 illustre un schéma de principe de l'architecture du microcontrôleur de la figure 1. La figure 3 illustre un schéma de principe de l'EBI de la figure 2. La figure 4 illustre un schéma de principe d'une EBI selon la présente invention. La présente invention concerne l'amélioration des transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples. La description suivante est présentée pour permettre à l'homme du métier de créer et d'utiliser l'invention, et est fournie dans le contexte d'une demande de brevet et de ses exigences. Diverses modifications du mode de réalisation préféré et des principes et caractéristiques génériques décrits ici seront facilement apparentes à l'homme du métier. Ainsi, la présente invention n'est pas conçue pour être limitée au mode de réalisation représenté, mais doit être considérée dans le cadre le plus large conformément aux principes et caractéristiques décrits ici. La figure 1 illustre un schéma de principe d'un circuit intégré type ayant un microcontrôleur 10 couplé à une unité SRAM 12 et à un module SDRAM 14 par l'intermédiaire d'un bus d'adresses, d'un bus de données bidirectionnel, et de signaux de contrôle, par exemple des sélections de circuit intégré (Chipsel sram, Chipsel sdram), des signaux de lecture/écriture, un signal d'horloge, des impulsions d'adresses de ligne et de colonne (ras, cas), une autorisation d'écriture (we), etc., comme c'est typique et bien compris dans l'art. En référence à présent à la figure 2, un schéma de principe de l'architecture du microcontrôleur 10 de la figure 1 est illustré. Le microcontrôleur 10 comprend généralement un microprocesseur 20, des mémoires sur puce 22, un décodeur d'adresses 24, une interface avec des mémoires externes (External Bus Interface, EBI Interface de bus externe) 26 pour exécuter des logiciels d'application, des modules périphériques standards 28 pour communiquer avec le monde extérieur (UART, SPI, PIO, USE) et des modules pour générer des interruptions (contrôleur d'interruptions, synchroniseur). Le EBI 26 génère les signaux requis pour commander les mémoires externes comme SRAM, SDRAM, FLASH, EEPROM, ROM. Typiquement, ces signaux sont le bus d'adresses, le bus de données, les sélections de circuit intégré, et les signaux de contrôle (lecture/écriture, autorisation, impulsion, etc.). Les sélections de circuit intégré sont uniques pour chaque unité de mémoire. Plusieurs sous modules sont typiquement inclus à l'intérieur de l'EBI 26 pour générer les signaux nécessaires pour la mémoire ciblée, comme représenté dans le schéma de principe de l'EBI 26 sur la figure 3. Comme le microcontrôleur 10 est couplé aux mémoires externes SRAM 12 et SDRAM 14 (figure 1), à l'intérieur de l'EBI 26 se trouvent deux contrôleurs, un contrôleur SRAM 30 et un contrôleur SDRAM 32. Lors du fonctionnement, si un autorafraîchissement est requis pour la SDRAM 14 (figure 1), le contrôleur SDRAM 32 envoie un signal qui génère (après combinaison avec les autres sources) un signal d'information attente pour informer le microprocesseur 20 (figure 2) qu'aucun accès ne peut être exécuté sur l'EBI 26. Le signal d'attente est appliqué jusqu'à la fin de l'autorafraîchissement. Lorsque le contrôleur SRAM 30 est requis d'exécuter un transfert de données (mode d'opération normal ou fonctionnel), un second signal de sortie est généré pour demander le nombre d'états d'attente pour le transfert de données. Les bus d'adresses entiers du contrôleur SRAM 30 et du contrôleur SDRAM 32 sont multiplexés. Lorsque la SDRAM 14 est sélectionnée pour un transfert de données ou lorsque la SDRAM 14 exécute un autorafraîchissement, le multiplexeur (MUX) 34, comme sélectionné par le signal à partir de la porte OU 2-entrées 36, fournit le bus d'adresses à partir du contrôleur SDRAM 32. Selon que la SDRAM 14 est en train d'exécuter un autorafraîchissement ou est sélectionnée pour un transfert de données par l'intermédiaire du bus système interne (adresse CPU, données, sélection), chaque bit d'adresse est conduit à la valeur appropriée par le contrôleur SDRAM 32. Dans certains dispositifs, un bit d'adresse spécifique, le bit d'adresse 10, est utilisé avec une valeur et une synchronisation spécifiques pour exécuter un autorafraîchissement. Ainsi, si l'état d'attente est envoyé et le bit d'adresse 10 utilisé pendant l'autorafraîchissement, aucun transfert ne sera exécuté par le microprocesseur 20, et le bus système interne pourra être bloqué pendant cette période pour certaines architectures de périphériques. La présente invention réalise une utilisation plus efficace du bus système interne pour éviter un tel blocage comme décrit en référence au schéma de principe de l'EBI 38 selon la présente invention, comme représenté sur la figure 4. Les éléments identiques à ceux de la figure 3 ont été désignés similairement sur la figure 4. En général, la présente invention fournit une sortie de sélection de rafraîchissement afin de permettre un transfert de données par les autres contrôleurs de mémoire pendant le processus de rafraîchissement. Dans un mode de réalisation préféré, la partie du bus d'adresses requise pour exécuter le rafraîchissement est dupliquée comme sortie de sélection de rafraîchissement. Dans le cas où le bit d'adresse 10 est utilisé pour exécuter le rafraîchissement, comme décrit en référence à la figure 3, ce bit est dupliqué, comme représenté par la sortie Sdramal0 sur la figure 4. Même si une telle duplication se rajoute au nombre de broches, l'augmentation est minimisée et produit un transfert de données amélioré. Lors du fonctionnement, lorsque la SDRAM 14 est sélectionnée (et qu'aucun rafraîchissement n'est nécessaire), le contrôleur SDRAM 40 copie simplement la valeur du bit d'adresse 10 disponible sur le bus système interne du microcontrôleur (bus d'adresses) dans sa sortie dédiée Sdramal0. Lorsque la SDRAM 14 n'est pas sélectionnée, le bit d'adresse 10 de la SDRAM 14 est commandé directement par le contrôleur SDRAM 40. Similairement, le bit d'adresse 10 pour la SRAM 12 est commandé sur le bus d'adresses externe directement par le contrôleur SRAM 30. Le MUX 42 transmet la sortie sur le bus d'adresses externe. Lorsque la SDRAM 14 est sujette à un autorafraîchissement, la valeur et la synchronisation particulières basées sur les spécifications de la fiche technique de la SDRAM sont utilisées comme base pour la commande de la sortie de sélection de rafraîchissement, Sdramal0. Avec la duplication de la partie du bus d'adresses requise pour l'autorafraîchissement selon la présente invention, les connexions externes de la carte de circuits imprimés sont légèrement différentes. Le bus d'adresses de sortie du microcontrôleur 10 commande directement le bus d'adresses entier de l'unité de mémoire SRAM 12, mais commande partiellement le bus d'adresses de l'unité de mémoire SDRAM 14. Le bit d'adresse 10 de l'unité de mémoire SDRAM 14 est commandé par le seul port du microcontrôleur (Sdram al0) qui est commandé par le module contrôleur SDRAM 40. Comme la broche additionnelle Sdramal0 est commandée séparément du bit de bus d'adresses 10, il n'y a plus de corrélation entre le processus d'autorafraîchissement de la SDRAM 14 et le bus d'adresses SRAM. En outre, le contrôleur SDRAM 40 ne génère plus un signal d'attente en mode d'autorafraîchissement, sauf si un accès de données vers/à partir de la SDRAM 14 est requis par le microprocesseur 20. Bien que la présente invention ait été décrite selon les modes de réalisation représentés, l'homme du métier reconnaîtra facilement qu'il peut exister des variantes des modes de réalisation et que ces variantes seront dans l'esprit et le cadre de la présente invention. Par exemple, l'invention a été décrite dans un dispositif intégré de microcontrôleur, mais peut être utilisée dans n'importe quels autres circuits où plusieurs types d'unités de mémoire sont adressés. Ainsi, plusieurs modifications peuvent être faites par l'homme du métier sans sortir de l'esprit et du cadre des revendications annexées. REVENDICATIONS 1. Procédé pour améliorer les transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples, le procédé comprenant l'étape consistant à : fournir un ensemble de circuits contrôleur à l'intérieur d'un microcontrôleur pour des mémoires statiques et dynamiques, l'ensemble de circuits contrôleur comprenant une sortie de sélection de rafraîchissement; dans lequel la sortie de sélection de rafraîchissement permet la sélection de la mémoire statique pendant le rafraîchissement de la mémoire dynamique. 2. Procédé selon la revendication 1 dans lequel la sortie de sélection de rafraîchissement comprend en outre une partie dupliquée d'un bus système interne du microcontrôleur. 3. Procédé selon la revendication 2 dans lequel la 20 partie dupliquée du bus système interne comprend en outre une partie dupliquée du bus d'adresses. 4. Procédé selon la revendication 3 dans lequel la partie dupliquée du bus d'adresses comprend en outre un 25 bit unique du bus d'adresses. 5. Procédé selon la revendication 4 dans lequel le bit unique comprend en outre le bit dix du bus d'adresses. 6. Procédé selon la revendication 1 dans lequel l'étape consistant à fournir un ensemble de circuits contrôleur comprend en outre l'étape consistant à fournir un contrôleur de mémoire dynamique pour commander la sortie de sélection de rafraîchissement. 7. Système pour améliorer les transferts de données vers des unités de mémoire externes dans des circuits ayant des contrôleurs de mémoire multiples, le système comprenant: au moins une unité de mémoire statique; au moins une unité de mémoire dynamique; et un circuit contrôleur couplé à la (ou les) unité(s) de mémoire statique et une unité de mémoire dynamique, le circuit contrôleur comprenant une sortie de sélection de rafraîchissement pour permettre la sélection de la (ou les) unité(s) de mémoire statique pendant le rafraîchissement de la (ou les) unité(s) de mémoire dynamique. 8. Système selon la revendication 7 dans lequel la sortie de sélection de rafraîchissement comprend en outre une partie dupliquée d'un bus d'adresses. 9. Système selon la revendication 8 dans lequel la partie dupliquée du bus d'adresses comprend en outre un bit unique du bus d'adresses. 10. Système selon la revendication 9 dans lequel le bit 30 unique comprend en outre le bit dix du bus d'adresses. 11. Système selon la revendication 7 dans lequel le circuit contrôleur comprend en outre au moins un contrôleur de mémoire statique et au moins un contrôleur de mémoire dynamique. 12. Système selon la revendication 11 dans lequel le (ou les) contrôleur(s) de mémoire statique et le (ou les) contrôleur(s) de mémoire dynamique comprennent en outre des modules d'un circuit d'interface de bus externe d'un microcontrôleur. 13. Système selon la revendication 11 dans lequel le contrôleur de mémoire dynamique du circuit contrôleur commande la sortie de sélection de rafraîchissement. 14. Circuit pour améliorer les transferts de données vers des unités de mémoire externes, le circuit comprenant: un contrôleur de mémoire statique pour contrôler la sélection d'une unité de mémoire statique, le contrôleur de mémoire statique utilisant au moins un bus d'adresses pour les transferts de données vers l'unité de mémoire statique; et un contrôleur de mémoire dynamique pour contrôler la sélection d'un module de mémoire dynamique et pour commander une partie dupliquée du bus d'adresses afin de permettre un transfert de données par le contrôleur de mémoire statique pendant un processus de rafraîchissement du module de mémoire dynamique. 15. Circuit selon la revendication 14 dans lequel la partie dupliquée comprend en outre un bit d'adresse unique. 16. Circuit selon la revendication 15 dans lequel le bit d'adresse unique comprend en outre le bit dix du bus d'adresses. 17. Circuit selon la revendication 14 dans lequel le contrôleur de mémoire statique et le contrôleur de mémoire dynamique comprennent des modules d'un circuit d'interface de bus externe. 18. Circuit selon la revendication 17 dans lequel le 15 circuit d'interface de bus externe comprend en outre un module d'un circuit intégré de microcontrôleur.