Brevet FR2772969A1 — publié le 19990625

L'invention concerne les circuits de gestion de mémoires vives dynamiques synchrones, par exemple de type SDRAM de l'appellation anglo-saxonne Synchronous Dynamic Random Access Memory. Les mémoires SDRAM ont été développées pour s'adapter à la vitesse de fonctionnement toujours plus grande des circuits de traitement de type microprocesseurs. Alors que les mémoires standard DRAM ont une fréquence de transfert limitée à quelques dizaines de mégahertz, les architectures avec des mémoires SDRAM peuvent atteindre des fréquences de fonctionnement de 100 MHz et au dessus. De même que pour les mémoires DRAM, les opérations de lecture et d'écriture de mémoires SDRAM peuvent être continues. Cependant, des événements peuvent apparaître, consommateurs de cycles d'horloge, pendant lesquels le flot de données de lecture ou d'écriture sortant ou entrant dans le contrôleur de SDRAM doit être interrompu. Les événements nécessitant de telles interruptions sont, entre autres un changement de page Les mémoires SDRAM sont par exemple organisées en blocs mémoires, chaque bloc en N pages. La valeur de N dépend de la taille de la mémoire et du nombre de bits transmis en parallèle sur le bus de données. Lorsque une opération d'écriture ou de lecture concerne des données réparties sur deux ou plusieurs pages ou sur deux ou plusieurs blocs mémoire, une opération de préchargement est nécessaire. Pendant cette opération, les commandes d'accès pour l'écriture ou la lecture de données provenant du système extérieur ne peuvent être honorées. - un dépassement de durée II y a une durée minimum et maximum d'ouverture d'une page. Si le temps d'accès est plus court que la durée minimum d'ouverture, des commandes NOP (No OPeration) doivent être insérées par le contrôleur. Si le temps d'accès est plus long que le maximum autorisé, la mémoire doit être préchargée avant d'effectuer une nouvelle opération d'accès à la même page. - rafraîchissement Des commandes de rafraîchissement sont transmises aux mémoires, 2048 commandes toutes les 32 ms pour une mémoire de 1 6 Mbits, suspendant les requêtes d'écriture/lecture. - lecture/écriture dans la même page Des opérations consécutives de lecture/écriture dans la même page ralentissent le débit de transfert. Des instructions NOP sont insérées entre les opérations de lecture et d'écriture (ou d'écriture et lecture). Tout accès externe est stoppé pendant ces opérations. rafraîchissement du registre mode Le mode opérationnel de la mémoire dépend du contenu d'un registre interne (appelé registre mode). Pour des raisons de fiabilité, il est utile de rafraîchir de temps en temps le contenu de ce registre. La figure 1 représente l'environnement d'un circuit de gestion de mémoire SDRAM selon l'art connu. Un circuit de gestion de mémoire ou contrôleur 2 est relié à la mémoire SDRAM 1. Ce circuit reçoit et transmet des informations sous forme de données numériques avec des circuits clients 4, 5, 6, 7, 8 par l'intermédiaire d'un circuit d'arbitrage 3. Le circuit de gestion de mémoire SDRAM est de type classique. Son rôle est la gestion de l'écriture et de la lecture des données dans la mémoire SDRAM, par exemple la génération des signaux de synchronisation ou des signaux précédemment mentionnés pour les opérations de lecture et d'écriture. Une liaison du circuit d'arbitrage 3 vers le circuit de gestion de mémoire 2 permet de transmettre les signaux numériques provenant du système externe, c'est à dire des circuits clients vers le circuit de gestion de mémoire 2. Il s'agit de données de commande, par exemple une commande de lecture, d'écriture, de rafraîchissement ou de rafraîchissement du registre mode et des adresses et données. Si la commande concerne une opération de lecture ou d'écriture, I'information d'adresse est intégrée dans les données de commande. S'il s'agit d'une opération d'écriture, les données à écrire y sont également incluses. Une première liaison du circuit de gestion de mémoire 2 vers le circuit d'arbitrage 3 transmet les données lues dans la mémoire SDRAM vers les circuits clients, par l'intermédiaire de ce circuit d'arbitrage. Une deuxième liaison du circuit de gestion de mémoire 2 vers le circuit d'arbitrage est nécessaire pour transmettre un signal "occupé". Ce signal indique que le contrôleur 2 ne peut exécuter la commande reçue du circuit d'arbitrage parce qu'un événement du type de ceux décrits précédemment a lieu. Ainsi, par exemple lors d'opérations de lecture, un changement de page nécessite un préchargement empêchant l'acquisition des données provenant du système externe. Un signal "occupé" doit donc être émis vers l'extérieur pour informer de l'impossibilité de recevoir des données et donc empêcher la transmission de ces données. Les inconvénients de telles configurations sont connus. Le signal "occupé" doit être géré et propagé du circuit de gestion 2 vers le circuit d'arbitrage 3 et vers chacun des circuits clients 4, 5, 6, 7, 8. Des circuits de gestion spécifiques à ce signal entraînent une complexité supplémentaire des circuits d'arbitrage 3 et des circuits clients 4, 5, 6, 7, 8, en particulier si un fonctionnement à haute vitesse est requis. Les durées d'échanges de données sont augmentées du fait de cette gestion. L'invention a pour but de pallier les inconvénients précités. A cet effet, I'invention a pour objet un dispositif de gestion de mémoire vive dynamique synchrone comportant un circuit de gestion de mémoire relié à au moins une mémoire et relié à des circuits clients par l'intermédiaire d'un circuit d'arbitrage gérant les accès clients au circuit de gestion, caractérisé en ce qu'il comporte une mémoire tampon entre le circuit d'arbitrage et le circuit de gestion pour la réception et la mémorisation des informations transmises par le circuit d'arbitrage, ces informations sous forme de flux de données de commande provenant d'un client, et en ce que le circuit d'arbitrage alloue au client i un créneau Ti pendant lequel il s'interdit toute transmission de données provenant d'un autre circuit client. Selon une réalisation particulière, le dispositif précédent est caractérisé en ce que le créneau de temps Ti se compose d'un temps de transmission des données (BL) pendant lequel sont effectivement transmises et mémorisées les données de commandes dans la mémoire tampon et d'un temps complémentaire (EL) pendant lequel toute transmission d'un autre client vers la mémoire est interdite, le temps complémentaire étant fonction des temps attribués aux différents types de commande. Grâce à l'invention et du fait d'une liaison unidirectionnelle des commandes du système externe vers le circuit de gestion de la mémoire, les circuits nécessaires à la gestion de ces données de commande sont simplifiés, aussi bien au niveau des circuits clients et circuit d'arbitrage que du circuit de gestion de la mémoire, la durée moyenne de transfert pour l'enregistrement ou la lecture de données dans la mémoire SDRAM en est améliorée. Le comportement des circuits dans ces échanges est en effet entièrement déterminé, permettant d'optimiser la gestion et le traitement des données et de réduire ce temps de traitement. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante donnée à titre d'exemple non limitatif et faite en regard des figures annexées qui représentent - la figure 1 une architecture de gestion de la mémoire SDRAM selon l'art antérieur - la figure 2 une architecture selon l'invention - la figure 3 une allocation de créneaux temporels - la figure 4 un exemple de comportement de la mémoire FIFO pendant un créneau. La figure 2 représente l'environnement d'un circuit de gestion de mémoire SDRAM, selon l'invention. Les numéros de référence de la figure 1 sont repris pour les éléments communs. Les différents circuits clients 4, 5, 6, 7, 8 sont reliés à un circuit d'arbitrage 1 1 par des liaisons bidirectionnelles. Le circuit d'arbitrage 1 1 transmet les informations vers le circuit de gestion de la mémoire SDRAM 9 par une liaison "commande". Une mémoire tampon 10, par exemple de type FIFO, est interposée entre le circuit d'arbitrage et le circuit de gestion. Elle recoit et mémorise les informations provenant du circuit d'arbitrage 1 1 avant de les transmettre au circuit de gestion proprement dit 9. Inversement, le circuit de gestion de la mémoire SDRAM 9 transmet les informations vers le circuit d'arbitrage 1 1 par l'intermédiaire d'une liaison de données appelée "sortie données". Enfin le circuit de gestion est relié à la mémoire SDRAM 1 par une liaison bidirectionnelle. Pour simplifier le raisonnement, on supposera que les clients échangent les informations avec la mémoire SDRAM d'une manière séquentielle, c'est à dire l'un après l'autre. II s'agit d'un exemple et l'invention pourrait tout aussi bien fonctionner avec une attribution dynamique des créneaux d'échange, explicités plus loin. Le circuit d'arbitrage 1 1 effectue donc une scrutation séquentielle des circuits clients. Le client interrogé envoie en retour les informations numériques au circuit d'arbitrage 11. II s'agit des données de commande telles que précédemment définies qui comprennent donc également les données que le circuit client souhaite par exemple mémoriser dans la mémoire SDRAM. Chaque client i (4, 5, ..., 8) se voit attribuer un intervalle de temps (ou créneau Ti) pendant lequel il peut envoyer un bloc de données au circuit d'arbitrage 11. Cet intervalle de temps est par exemple fixé une fois pour toutes au moment de la conception des circuits. Dans l'exemple de réalisation, le nombre de commandes est le même à chaque échange, pour un client donné. Le nombre d'événements pouvant changer d'une commande à une autre (changement de page, ...), cet intervalle de temps tient compte du nombre maximum d'événements possibles. Pendant cet intervalle de temps Ti, le circuit d'arbitrage 1 1 assigne la liaison vers la mémoire FIFO 10 au client i. II transmet alors, pendant une partie de cet intervalle de temps, les données relatives aux commandes reçues du client i. Ce créneau, par exemple exprimé en cycles d'horloge est appelé temps de transfert des commandes, il s'agit du temps pendant lequel s'effectue le transfert des commandes entre la mémoire FIFO 10 et le circuit de gestion 9. Pendant ce créneau Ti, les données de commande relatives au client i sont mémorisées dans la mémoire FIFO 10. Les interruptions demandées par le circuit de gestion 9 et qui correspondent aux événements précédemment évoqués et qui, dans l'art antérieur arrêtaient la transmission des données de commande par le client, sont, ici, ignorées par le circuit d'arbitrage et a fortiori par ce client. Le client i continue de transmettre ces données , via le circuit d'arbitrage, dans la mémoire FIFO sans tenir compte des interruptions déclenchées par le circuit de gestion 9, la mémoire FIFO continuant de mémoriser les données pendant les interruptions. Le comportement de la mémoire FIFO est explicité ci-après. Soit T la durée totale des intervalles de temps ou créneaux correspondant à l'ensemble des clients. Dans notre exemple T= T1 +T2+T3+T4+T5. T est le temps de scrutation global, pendant lequel l'ensemble des circuits clients ont été interrogés. Détaillons à l'aide de la figure 3, la répartition des créneaux sur cet intervalle de temps T, pour ces circuits clients. Le créneau Ti pour le client i se répartit de la sorte Ti = BLi + Ei Ti correspond à la durée totale du créneau. BLi correspond à la durée de transmission effective des données de commande (en cycles horloge) du circuit d'arbitrage à la mémoire FIFO. Ei correspond à la durée du cycle complémentaire nécessaire au traitement de ces commandes par le circuit de gestion et attribué au client 1. Par exemple, si le client i gère directement le rafraîchissement, BLi contient une ou plusieurs commandes de rafraîchissement et Ei représente le nombre de cycles consommés par chacun de ces rafraîchissements. Si le client i gère le rafraîchissement du registre "mode", BLi a une durée d'un cycle correspondant à cette seule commande mais Ei est le nombre de cycles d'horloge nécessaire pour réaliser une commande MRS (initiales de mode register set selon l'appellation anglo-saxonne). II n'y a aucun intérêt à effectuer plusieurs commandes consécutives MRS. Si le client i gère un transfert de données en lecture ou écriture, BLi et Ei dépendent de l'application, par exemple du nombre de changements de page. Les figures 4 représentent le comportement de la mémoire FIFO pendant ces différentes phases. Le créneau Tî est composé d'une première phase BL1 et d'une deuxième phase El. Pendant la première phase, les commandes sont transmises par le circuit d'arbitrage vers la mémoire FIFO qui écrit ces données, à débit constant. Pendant la deuxième phase, aucune donnée n'est écrite dans la mémoire FIFO. La figure 4a, représente au cours du temps, les phases BL1 et El pendant le créneau T1 correspondant au créneau de temps attribué au premier client. L'écriture de la mémoire FIFO se fait pendant la phase BL1. La figure 4b représente les périodes de lecture de la mémoire FIFO, entrecoupées d'événements interrompant cette lecture. La lecture de la mémoire FIFO par le circuit de gestion 9 se fait dès le début du créneau, dés le début d'enregistrement des données dans la mémoire. La figure 4c représente le niveau de remplissage de la mémoire FIFO, ce remplissage ayant lieu pendant l'interruption des périodes de lecture (fig 4b) pendant la phase d'écriture (fig 4a). Ainsi, le fait d'interdire la réception de nouvelles données après la phase BLi permet d'éviter une saturation de la mémoire FIFO et permet au circuit de gestion de traiter les données transmises sans interrompre cette acquisition. En effet, bien qu'aucune acquisition n'est possible par le circuit de gestion pendant le traitement d'une partie des données reçues, la mémoire FIFO continue de recevoir ces données pour un traitement ultérieur, c'est à dire dès que le flot de données précédent aura été traité pour permettre une nouvelle acquisition par le circuit de gestion. Le circuit d'arbitrage 1 1 est modifié par rapport au circuit de l'art antérieur de manière à assigner au seul client i, pendant le temps de transfert relatif à ce client i, la liaison vers la mémoire FIFO. Si la capacité mémoire est correctement calculée pour éviter tout débordement pendant les phases de traitement du circuit de gestion correspondant à la non acquisition de données par ce circuit, aucune interruption n'est plus nécessaire pour empêcher le circuit client de transmettre ses données. Le calcul de la capacité de la mémoire FIFO est effectué de sorte à éviter tout débordement, par exemple à partir de simulations, et dépend de l'application envisagée. Concernant l'intervalle de temps Ti attribué à chaque client, il a été dit que ce temps est prédéterminé. II serait aussi envisageable que chacun des clients détermine dynamiquement cet intervalle de temps et transmette cette information au circuit d'arbitrage 11 avant chacun des transferts de blocs de données. La liaison entre le circuit d'arbitrage et la mémoire FIFO est un bus de commande par lequel transitent toutes les informations de commande en plus des informations d'adresse et de données. Selon un mode de réalisation, les données sont structurées en champs - un champ d'instructions dont les mots de codes définissent le mode lecture, écriture, rafraîchissement page ou rafraîchissement du registre mode, - un champ d'adresses, non utilisé en mode rafraîchissement, - un champ de données, comportant les données à écrire en mode écriture ou des informations relatives aux données qui seront lues, comme indiqué ci-après, champ non utilisé en mode rafraîchissement. Lorsque les signaux numériques transmis correspondent à une commande de lecture, le champ de données de la commande est vide. Dans ce cas, il est tout à fait envisageable, sans sortir du domaine de l'invention, d'exploiter ce champ disponible pour transmettre des informations qui accompagneront les données relues, comme par exemple le numéro du client destinataire ou bien des informations de synchronisation indiquant le début d'une structure de données. Ceci, par exemple en retardant les données d'un temps correspondant au temps de latence de la SDRAM. Ces informations sont ensuite transmises par le circuit de gestion de mémoire, avec les données lues dans la mémoire SDRAM, vers le circuit d'arbitrage. Le domaine d'application de l'invention concerne les circuits de traitement exploitant des mémoires de type SDRAM, par exemple pour la mémorisation d'informations vidéo. REVENDICATIONS 1. Dispositif de gestion de mémoire vive dynamique synchrone comportant un circuit de gestion de mémoire (9) relié à au moins une mémoire (1) et relié à des circuits clients (4, 5, 6, 7, 8) par l'intermédiaire d'un circuit d'arbitrage (11) gérant les accès clients au circuit de gestion (9), caractérisé en ce qu'il comporte une mémoire tampon (10) entre le circuit d'arbitrage (11) et le circuit de gestion (9) pour la réception et la mémorisation des informations transmises par le circuit d'arbitrage (11), ces informations sous forme de flux de données de commande provenant d'un client, et en ce que le circuit d'arbitrage (11) alloue au client i un créneau Ti pendant lequel il s'interdit toute transmission de données provenant d'un autre circuit client. 2. Dispositif selon la revendication 1, caractérisé en ce que le créneau de temps Ti se compose d'un temps de transmission des données (BL) pendant lequel sont effectivement transmises et mémorisées les données de commandes dans la mémoire tampon (10) et d'un temps complémentaire (EL) pendant lequel toute transmission d'un autre client vers la mémoire (10) est interdite, le temps complémentaire étant fonction des temps attribués aux différents types de commande. 3. Dispositif selon la revendication 2, caractérisé en ce que les durées attribuées aux différents types de commande pour le calcul du temps complémentaire sont prédéterminées en fonction de l'architecture spécifique au dispositif de gestion. 4. Dispositif selon la revendication 2, caractérisé en ce que les durées attribuées aux différents types de commandes pour le calcul du temps complémentaire sont prédéterminées en fonction du nombre maximum d'événements exceptionnels relatifs à ces types de commande. 5. Dispositif selon la revendication 2, caractérisé en ce que la durée d'un créneau client est transmise par le client lui-même. 6. Dispositif selon la revendication 2, 3, 4 ou 5, caractérisé en ce que le créneau BL correspondant à la transmission des données est composé d'un champ d'instructions, d'un champ d'adresses et d'un champ de données et en ce que les commandes émises par les circuits clients vers le circuit de gestion sont transmises à travers ces champs. 7. Dispositif selon l'une des revendications précédentes, caractérisé en ce que les créneaux clients (Ti) sont contigus. 8. Dispositif selon l'une des revendications précédentes, caractérisé en ce que la taille de la mémoire tampon est calculée en fonction de l'architecture spécifique au dispositif de gestion. 9. Dispositif selon l'une des revendications précédentes, caractérisé en ce que la taille de la mémoire tampon est calculée en fonction des types de clients abonnés. 10. Dispositif selon l'une des revendications précédentes, caractérisé en ce que la mémoire tampon (10) est une mémoire FIFO.