Brevet FR2798217A1 — publié le 20010309

CIRCUIT DE COMMANDE D'UNE MEMOIRE SYNCHRONE La présente invention concerne le domaine du contrôle des mémoires à accès aléatoire dynamiques (DRAM, dynamic random access memory ). On distingue deux catégories de DRAM - les DRAM asynchrones fonctionnent en réponse à des séquences transitions d'états logiques des signaux de commande qui leur sont adressés. Deux modes de fonctionnement de DRAM asynchrones sont assez répandus : FPM ( Fast Page Mode ) et EDO ( Extended Data Out ) ; - les DRAM synchrones (SDRAM, synchronous DRAM ) fonctionnent en réponse à des états logiques des signaux de commande qui leur sont adressés aux instants des fronts actifs d'un signal d'horloge. La figure 1 montre un agencement classique d'un microcontrôleur 1 associé à une DRAM asynchrone 2, le microcontrôleur 1 ayant un contrôleur de DRAM intégré. La référence 3 désigne un oscillateur qui fournit une horloge système au microcontrôleur 1. Dans l'exemple représenté, l'interface entre la DRAM 2 et son contrôleur comporte un bus de données 4 (DATA), un bus d'adresses 5 et des liaisons transportant des signaux binaires de commande RW/, RAS/ et CAS/. Le signal RW/ (read/write) distingue les cycles de lecture (par exemple RW/ = 1, représentant un état logique haut) et les cycles d'écriture (RW/ = 0, représentant un état logique bas). Les signaux RAS/ ( row address strobe ) et CAS/ ( column address strobe ) portent des impulsions de validation d'adresses de lignes et de colonnes, par exemple des impulsions de niveau logique bas. Par convention, les noms des signaux actifs à l'état bas se terminent par le suffixe / . Les figures 2 à 4 illustrent respectivement des exemples typiques de cycles de lecture, d'écriture et de rafraîchissement que peut piloter contrôleur de la DRAM asynchrone 2. L'adressage en lecture et en écriture fait de manière matricielle, en indiquant un numéro de ligne puis un numéro de colonne, la conjonction des deux informations définissant l'adresse à laquelle le programme du microcontrôleur désire accéder. Dans un cycle de lecture (figure 2), le contrôleur de DRAM place le signal RW/ au niveau logique haut. II place d'abord le numéro de ligne sur le bus d'adresses 5. Quelques nanosecondes plus tard, il descend le signal RASL Sur le front descendant de RAS/, la DRAM 2 enregistre le numéro de ligne. Le contrôleur de DRAM place ensuite le numéro de colonne sur le bus d'adresses 5, puis descend le signal CAS/. Sur le front descendant de CAS/, la DRAM enregistre le numéro de colonne. Un certain temps après (dépendant du temps d'accès du composant), la DRAM fournit la donnée lue sur le bus de données 4. Elle maintient la donnée présente jusqu'à la remontée des signaux RAS/ et CAS/. Dans un cycle d'écriture (figure 3), le contrôleur de DRAM place le signal RW/ au niveau logique bas. II place d'abord le numéro de ligne sur le bus d'adresses 5. Quelques nanosecondes plus tard, il descend le signal RASL Sur le front descendant de RAS/, la DRAM 2 enregistre numéro de ligne. Le contrôleur de DRAM place ensuite le numéro de colonne le bus d'adresses 5 ainsi que la donnée à mémoriser sur le bus de données 4, puis descend le signal CAS/. Sur le front descendant de CAS/, la DRAM enregistre le numéro de colonne et mémorise à l'adresse adéquate la donnée présente sur le bus de données 4. Un certain temps après, le microcontrôleur remonte les signaux RAS/, CAS/ et cesse de fournir la donnée sur le bus de données 4. La mémorisation de l'information dans une memoire dynamique de type DRAM n'est assurée que si le contenu de la mémoire est réécrit régulièrement. Un moyen semi-automatique est prévu pour cela : les cycles de rafraîchissement ( refresh ). II suffit d'effectuer un cycle de rafraîchissement à intervalles réguliers (généralement de l'ordre de 15 microsecondes) pour que l'intégrité des données soit assurée. Le cycle de rafraichissement (figure 4) peut être caractérisé par le niveau bas du signal CAS/ alors que RAS/ est au niveau haut, puis par la mise au niveau bas de RASL Ce mécanisme est appelé CAS before RAS . Cette séquence ne se produit pas dans les cycles de lecture ou d'écriture des figures 2 et 3. Les mémoires asynchrones sont largement utilisées dans diverses applications où elles fonctionnent avec des microcontrôleurs ou d'autres systèmes de traitement numérique. Mais on observe actuellement une certaine obsolescence des mémoires dynamiques asynchrones utilisées dans les équipements électroniques à base de microcontrôleurs. Le marché DRAM est dominé par l'application aux ordinateurs personnels (PC), qui représente près de 70%. Le remplacement progressif des DRAM asynchrones, par des technologies synchrones (SDRAM) et autres, est confirmé par les annonces successives des principaux fournisseurs. Malgré l'existence attendue d'un marché résiduel destiné à couvrir les besoins en DRAM asynchrones, on peut s'attendre à une hausse sensible de leurs coûts et à une ifficulté d'approvisionnement croissante. Les principales technologies de remplacement sont les suivantes - la SDRAM classique , qui est la plus mûre ; - la technologie Rambus DRAM (ou Direct Rambus ), qui semble être le choix d'évolution de plusieurs constructeurs ; - les technologies dérivées de la SDRAM (telles qu Double-Data-Rate SDRAM ) proposées par certains fournisseurs de DRAM. Ces deux dernières technologies, très récentes, restent coût élevé, et leur compatibilité avec les microcontrôleurs récents les plus répandus (par exemple les types PowerQuicc I et II de la société Motorola) n'est pas assurée. Une première solution, pour le remplacement de la technologie de mémoire obsolescente par des SDRAM, consiste à utiliser un nouveau microcontrôleur pourvu des interfaces appropriées avec les nouvelles mémoires, en utilisant éventuellement un contrôleur de mémoire externe pour se protéger d'une obsolescence future. Cette solution garantit sans doute le maintien, voire l'accroissement, des performances, ainsi qu'une pérennité maximale. Elle est malheureusement la plus lourde en termes de développement matériel et logiciel. Une seconde solution consiste à conserver le microcontrôleur existant et à insérer un composant entre le microcontrôleur et les nouveaux boîtiers de mémoire, pour remplacer totalement le contrôleur mémoire intégré du microcontrôleur par un contrôleur externe, plus souple, et permettant gérer la nouvelle mémoire. Ainsi, la partie contrôleur interne du microcontrôleur n'est pas utilisée, et ce dernier fonctionne alors en microprocesseur. La transparence logicielle n'est plus assurée. En conséquence, cette solution, qui peut sembler a priori compatible avec le maintien des performances initiales, comporte un fort impact logiciel, qui rend la nouvelle plate-forme matérielle à coup sûr incompatible avec le logiciel utilisé. La présente invention a pour but de résoudre le problème d'obsolescence des mémoires DRAM asynchrones, et leur remplacement progressif par des mémoires synchrones (SDRAM), tout en conservant la compatibilité logicielle de la nouvelle plate-forme matérielle. Selon l'invention, il est proposé un circuit de commande d'au moins une mémoire synchrone, comprenant des moyens pour traduire des premiers signaux de commande issus d'un système de traitement numérique en seconds signaux de commande synchronisés sur des fronts actifs d'un signal d'horloge et destinés à la mémoire synchrone, ces moyens de traduction comprenant des moyens logiques pour recevoir les premiers signaux de commande sous la forme de signaux de commande non synchronisés produits par un contrôleur de mémoire asynchrone du système de traitement numérique, et pour effectuer leur traduction en seconds signaux de commande synchronisés. On insère donc un composant d'adaptation entre le microcontrôleur existant et les nouveaux boîtiers de mémoire SDRAM, relayant les signaux d'accès du contrôleur de mémoire intégré au microcontrôleur, pour adapter à la nouvelle technologie. Le circuit peut être réalisé sous forme d'un composant programmable (de type EPLD, FPGA ou analogue), ou avec une technologie masquée (ASIC, prédiffusé, etc.). L'invention réalise un bon compromis entre un effort de développement modéré et un maintien acceptable des performances. Elle permet résoudre le problème d'obsolescence tout en pouvant présenter complète transparence au logiciel du microcontrôleur. Le système de traitement numérique auquel est associé le circuit selon l'invention est typiquement un coeur de processeur associé à un contrôleur de mémoire asynchrone. II peut notamment être un microcontrôleur comme indiqué précédemment. Mais il est à noter qu'il pourrait être de nature différente selon l'architecture retenue dans chaque application particulière, par exemple microprocesseur avec contrôleur de DRAM externe, ou ASIC avec contrôleur de DRAM interne ou externe. D'autre part, le circuit selon l'invention peut être réalisé sous forme d'un composant externe au système de traitement numérique, ou sur la même puce qu'une partie au moins du système de traitement numérique. Ce dernier cas peut être celui d'une nouvelle version de microcontrôleur rendue compatible avec les nouveaux types de mémoires DRAM avec un impact modéré sur l'organisation du composant. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels - la figure 1, précédemment commentée, est un schéma classique d'un mïcrocontrôleur associé à une DRAM asynchrone ; - les figures 2 à 4, précédemment commentées, sont des chronogrammes respectifs d'exemples de cycles de lecture, d' " iture et de rafraîchissement dans la mémoire de la figure 1 ; - la figure 5 est un schéma synoptique d'un microcontroleur du type représenté sur la figure 1, associé à une SDRAM au moyen d'un circuit d'adaptation selon l'invention ; et - la figure 6 est un chronogramme montrant un cycle de lecture et un cycle d'écriture dans la mémoire de la figure 5. Dans la réalisation illustrée par la figure 5, on a remplacé une ou plusieurs mémoires DRAM asynchrones, formant des périphériques d'un système constitué d'un coeur de processeur associé à un contrôleur de DRAM asynchrone (microcontrôleur 1), par un dispositif constitué circuit ou composant d'adaptation 8 et d'une ou plusieurs mémoires DRAM synchrones 9 (SDRAM). L'ensemble adaptateur + SDRAM émule le fonctionnement d'une DRAM asynchrone, de telle sorte que la substitution est transparente du point de vue du microcontrôleur 1. Comme l'environnement extérieur vu par le microcontrôleur est inchangé, aucune modification du logiciel n'est requise lorsqu'on remplace les mémoires. Le composant adaptateur 8 placé entre le microcontrôleur 1 et la SDRAM 9 présente d'un côté une interface identique à une DRAM classique, donc capable de s'interfacer à la place de celle-ci. De l'autre côté, le composant fournit une interface de type SDRAM, donc capable de contrôler une ou plusieurs mémoire SDRAM. Entre ces deux interfaces, il effectue les traductions de cycles DRAM asynchrones classiques en cycles SDRAM associés. Une boucle de poursuite de phase (PLL, phase-locked loop ) 10 fonctionne en multiplicateur pour produire un signal d'horloge CLK synchrone de l'horloge système du microcontrôleur mais à fréquence multiple (2, 3, ... ). Dans certains cas, cette PLL peut être déjà présente dans le microcontrôleur. Vue du microcontrôleur, l'interface mémoire se présente de la même manière que dans le cas classique de la figure 1, avec le bus de données 4, le bus d'adresses 5 et les liaisons transportant les signaux RW/ RAS/ et CAS/. Dans l'exemple représenté sur la figure 5, l'adressage dans SDRAM 9 est effectué sur 11 bits AO-A10, le dernier bit A10 étant porté par un fil représenté séparément du bus d'adresse 11. Le multiplexage des lignes et des colonnes est réalisé soit en interne par le contrôleur de DRAM (ce qui est le cas sur la figure), soit à l'aide de multiplexeurs externes. Dans cet exemple, le bus de données 4 est directement relié à la SDRAM 9. On notera toutefois que l'adaptateur 8 pourrait effectuer un multiplexage des données si la largeur du bus de données diffère entre le microcontrôleur 1 et la SDRAM 9. L'interface entre la SDRAM 9 et l'adaptateur 8 comporte en outre, de façon classique, des liaisons transportant des signaux de commande RWI RAS/, CAS/ de signification semblable à ceux de l'interface avec le microcontrôleur 1, ainsi que des signaux supplémentaires CS/ ( Chip Select ), CLKE ( Clock Enable ), BS ( Bank Select , peut être considéré comme un fil d'adresse supplémentaire) et DQM ( Data Mask , utilisé en écriture par les SDRAM pour valider ou non un octet dans le cas d'un bus de données de plus de 8 bits). Selon la largeur du bus de données, le nombre de signaux binaires CAS/ et DQM/ varie au niveau de l'interface de la SDRAM. Selon la taille de la SDRAM, le nombre de signaux d'adresse varie, de même que le nombre de signaux binaires BS. De façon générale, l'adaptateur reçoit au minimum du contrôleur de DRAM asynchrone les signaux RAS/, CAS/, RW/ ainsi que les bits d'adresses et une horloge, et il fournit au minimum à la SDRAM les signaux de type RAS/, CAS/, BS, A10, DQM. L'adaptateur 8 effectue quatre types généraux d'accès à la SDRAM 9 - lecture (read) - écriture (write) - rafraîchissement (refresh) - configuration du registre MODE REGISTER Les accès à la SDRAM sont synchrones de l'horloge CLK et se différencient par l'état des signaux CLKE, CS/, RAS/, CAS/, RW/, A10 au moment des fronts montants de l'horloge CLK. Chacune des combinaisons possible des signaux cités précédemment correspond à un de commande normalisé pour les SDRAM. Un sous ensemble des commandes possibles peut etre utilisé dans la présente application, comme indiqué dans la première colonne Tableau 1, où les colonnes suivantes indiquent la combinaison d'états correspondante des signaux de contrôle au moment des fronts montants de l'horloge CLK, L désignant un état logique bas (0), H un état logique haut (1), X un état indifférent, et V une information valide. Commande CLKE CSI RAS/ CAS/ RWI BS A10 A9-AO NOP L H H H H X X X ACT L L L H H V V V READ L L H L H V L V WRITE L L H L L -- V L V PRE L L L H L V L I X REF L L L L H X X X MRS L L L L L V L TABLEAU I Les significations de ces commandes sont les suivantes NOP : pas d'opération. ACT : Bank activate . Cette commande équivaut à la descente du RAS/ pour les DRAM asynchrones. READ : (ou RD) Cette commande équivaut de la descente du CAS/ avec à l'état haut pour les DRAM asynchrones. WRITE : (ou WR) Cette commande équivaut de la descente du CAS/ avec RW/ à l'état bas pour les DRAM asynchrones. PRE : Precharge bank . Cette commande désactive une banque n'a pas d'équivalent en DRAM asynchrone. Elle est nécessaire avant d'effectuer un cycle de rafraîchissement par exemple. REF : Refresh . Cette commande équivaut au cycle CAS before RAS des DRAM asynchrones. MRS _ Mode Register Set . Cette commande de configuration la SDRAM n'a pas d'équivalent en DRAM asynchrone. Elle permet de programmer certains paramètres régissant les accès à la SDRAM, notamment le CAS latency qui est le nombre de période d'horloge s'écoulant entre la commande READ et la fourniture de la donnée par la SDRAM. Chacun des types d'accès à la SDRAM 9 se décompose en une série de commandes (par exemple: ACT, NOP, READ, NOP, PRE), chaque commande nécessitant une période de l'horloge CLK. La séquence complète doit être exécutée en un temps inférieur ou égal à l'accès DRAM asynchrone classique correspondant, et être agencée de façon à lire ou fournir les données à des instants compatibles avec les cycles bus du microcontrôleur 1. L'adaptateur 8 comporte par exemple quatre machi logiques, qui opèrent de manière exclusive les unes des autres. Chacune d'elles contrôle au minimum les signaux CS/, RAS/, CAS/, RWI, BS, A10, A0, DQM à destination de la SDRAM 9 - Machine 1 : configuration de la SDRAM. - Machine 2 : accès READ - Machine 3 : accès WRITE - Machine 4 : accès REFRESH La décision de mise en opération d'une machine est prise selon l'état des signaux RAS/, CAS/, RWI provenant du microcontrôleur ainsi que le signal de réinitialisation RESET/. La machine 1 opère sur détection de la désactivation de RESETL La machine 2 opère sur détection de la condition RW/ = H, RAS/ = L, CAS/ = H. La machine 3 opère sur détection de la condition RW/ = L, RAS/ = L, CAS/ = H. La machine 4 opère sur détection de la condition RAS/ = H, CAS/ = L. La figure 6 est un exemple de chronogramme montrant la traduction des signaux de commande dans le cas d'un accès en lecture suivi par un accès en écriture. Les phases S0, S1, ..., S7 correspondent différentes phases du cycle bus d'un microcontrôleur de type 68x360 commercialisé par la société Motorola. Le jeu de commandes noté A est celui issu contrôleur de DRAM interne du microcontrôleur, et que celui noté B est celui issu de l'adaptateur 8.Les états V des signaux BS et A10 correspondent respectivement au bit de poids fort du numéro de ligne et bit de poids immédiatement inférieur du même numéro de ligne. Ces bits sont mémorisés au moment du front descendant du signal RAS/ provenant du microcontrôleur 1. Les états L et C des bits A9-AO correspondent aux adresses de ligne et de colonne, c'est-à-dire aux valeurs du bus d'adresses du microcontrôleur 1 aux moments des fronts descendants du signal RAS/ et signal CAS/, respectivement. Dans un exemple particulier de mise en oeuvre, le composant adaptateur 8 peut être réalisé avec un EPLD de type MAX7128 commercialise par la société Altera, et associé à un microcontroleur de type MC68x360 commercialisé par la société Motorola, avec DRAM de 64 Mbits et une horloge système à 33 MHz, le microcontrôleur fournissant directement (sans PLL auxiliaire) une horloge à fréquence double de son horloge système. Dans cet exemple, le multiplexage des adresses est réalisé par le microcontrôleur, comme dans la description ci-dessus. Le bus de données est de 16 bits, de sorte qu'on utilise deux signaux binaires de type CAS pour différencier l'octet de poids fort et l'octet de poids faible, et deux signaux DQM correspondants. REVENDICATIONS 1. Circuit de commande d'au moins une mémoire synchrone (9), comprenant des moyens (8) pour traduire des premiers signaux de commande (RU, RAS/, CAS/) issus d'un système de traitement numérique (1) seconds signaux de commande (CS/, RAS/, CAS/, RWI, BS, A10, DQM) synchronisés sur des fronts actifs d'un signal d'horloge (CLK) et destinés â mémoire synchrone, caractérisé en ce que les moyens de traduction comprennent des moyens logiques pour recevoir les premiers signaux de commande sous la forme de signaux de commande non synchronisés produits par contrôleur de mémoire asynchrone du système de traitement numérique, et pour effectuer leur traduction en seconds signaux de commande synchronisés. 2. Circuit de commande selon la revendication 1, réalisé sous forme d'un composant externe au système de traitement numérique (1). 3. Circuit de commande selon la revendication 1 ou 2, dans lequel le système de traitement numérique comprend un microcontrôleur (1) incorporant le contrôleur de mémoire asynchrone. 4. Circuit de commande selon la revendication 3, intégré dans le même composant que le microcontrôleur.