Brevet FR2772968A1 — publié le 19990625

L'invention concerne les circuits de traitement exploitant des mémoires synchrones dynamiques à accès aléatoires de type SDRAM de l'appellation anglaise Synchronous Dynamic Random Access Memory et plus particulièrement des dispositifs de synchronisation pour de telles mémoires SDRAM. 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. Les mémoires SDRAM exploitent un circuit d'interface synchrone o tous les signaux sont échantillonnés sur un même front d'horloge. Ces signaux sont par exemple les signaux d'adresse, de données, les signaux de contrôle et de commande tels que "cs", "ras", "cas", "we", "dqm" dont la définition et la fonction sont explicitées dans toute documentation fabricant sur les mémoires SDRAM et qui ne sont donc que brièvement rappelées ici. Opération de lecture Le diagramme des temps relatif à une opération de lecture d'une SDRAM est donné en figure 1. Cette opération de lecture dépend de deux paramètres programmables appelés en anglais "cas latency et "burst length". Dans l'exemple de la figure 1, la commande "cas latency" correspondant au temps de latence en lecture est égale à 3. Cela signifie que les données dq sont lues trois cycles après que la commande de lecture ait été reçue. La commande "burst length" est égale à 4, ce qui signifie que quatre données consécutives sont extraites à partir d'une seule information recue d'adresse. La ligne en pointillés 1 correspond à I'activation de l'adresse (ad) en tant qu'adresse "rangée", par le signal ras (pour row address strobe en anglais) et la ligne pointillée 2 à l'activation de l'adresse (ad) en tant qu'adresse "colonne", par le signal cas (pour column address strobe en anglais) avec commande de lecture. Le temps de latence correspond au temps qui sépare l'application de l'adresse "colonne" (ad) de la sortie des données. La ligne en pointillés 3 correspond à la lecture des données valides dq, 3 cycles horloges après le signal cas. Opération d'écriture Le diagramme des temps relatif à une opération d'écriture d'une SDRAM est donné en figure 2. Cette opération dépend du signal "burst length" qui représente le nombre de données consécutives qui sont écrites à partir d'une seule information d'adresse. La ligne 4 en pointillés correspond à l'adressage rangée (ras). La ligne en pointillés 5 correspond à l'adressage colonne (cas) avec l'activation de la commande d'écriture (we). En considérant à nouveau la figure 1 et les opérations de lecture, le temps Tac est le temps d'accès des données après le front montant de l'horloge correspondant au dernier cycle relatif au temps de latence et Toh est le temps de maintien de ces données après le front montant suivant de l'horloge (correspondant donc au temps de latence). Lorsque la fréquence de fonctionnement est élevée, les données dq lues i15 restent valides pendant un court intervalle de temps, comme représenté par le créneau "données valides" non hachuré et traversé par la ligne en pointillés 3 sur la figure 1. Par exemple pour une fréquence d'horloge de MHz, et pour une durée Tac et Toh respectivement de 8,5 ns et 3 ns, la durée pendant laquelle les données lues restent valides et peuvent donc être saisies est de: Ons- 8,5ns + 3ns = 4,5ns Saisir ces données dans cet intervalle de temps nécessite que l'horloge du circuit gérant la mémoire SDRAM, circuit que l'on appellera par la suite contrôleur, et l'horloge propre à la mémoire SDRAM soient en phase. Dans le cas contraire, la prise en compte des données ne peut être réalisée de manière fiable. Si le contrôleur est un circuit intégré ou partie d'un circuit intégré, les signaux de commandes, d'adresses et de données transmis à la mémoire SDRAM par ce circuit, synchronisés sur l'horloge interne provenant du signal d'horloge externe reçu sur l'entrée horloge du circuit, ne sont généralement pas synchronisés sur le signal d'horloge externe directement reçu par la mémoire SDRAM, bien que le signal transmis sur ces deux entrées horloge soit le même comme expliqué ci-dessous. La figure 3 représente un contrôleur de mémoire SDRAM 6 relié à une mémoire SDRAM 7 par une liaison 8 pour échanger les signaux de commandes, d'adresses et de données, selon l'art antérieur. Une même horloge H est transmise à l'entrée du circuit contrôleur de mémoire 6 et à l'entrée de la mémoire SDRAM 7. Le contrôleur reçoit cette horloge sur son entrée horloge et la distribue aux différents circuits devant se synchroniser sur cette horloge. Pour ce faire, le signal d'horloge reçu doit être "tamponné" plusieurs fois pour une répartition arborescente, avant d'être délivré aux circuits échangeant des signaux sur la liaison avec la mémoire SDRAM comme indiqué sur la figure 3. Chaque circuit tampon crée un retard de quelques nanosecondes et un retard global de l'ordre de 5 à 10 nanosecondes peut rendre cette liaison directe 8 entre le contrôleur et la mémoire peu fiable, du fait de la désynchronisation de l'horloge H avec les signaux échangés sur cette liaison. Bien sûr, des circuits à verrouillage de phase ou PLL, de l'appellation anglaise Phase Locked Loop, peuvent être utilisés par le contrôleur. Mais de tels circuits augmentent la complexité et le coût de réalisation des ASICs. Egalement des lignes à retard peuvent être exploitées, mais les problèmes inhérents à ce type de composants sont connus, leur calibration doit être parfaite, la mise au point est coûteuse. Le but de l'invention est de remédier aux inconvénients précités. A cet effet, I'invention a pour objet un dispositif de synchronisation pour mémoire synchrone dynamique à accès aléatoire relié à au moins une mémoire par un bus d'adresses (AD) et un bus de données (DO), la mémoire ayant une entrée horloge, comprenant un premier tampon (r5) recevant des données (Di_w) à transmettre vers la mémoire sur le bus de données, un deuxième tampon (r4) recevant des adresses (ADi) à transmettre vers la mémoire sur le bus d'adresses et un troisième tampon (rl) recevant les données provenant de la mémoire et transmises sur le bus de données, caractérisé en ce qu'il fournit, sur une sortie horloge, un signal d'horloge (clki_b) pour être transmis vers l'entrée horloge de la mémoire en ce que le signal d'horloge (clki) exploité pour tamponner les adresses et les données est celui fourni (clki_b), à une inversion de signal près, sur la sortie horloge et en ce que ce même signal (clkib) est exploité par le troisième tampon (r) pour tamponner les données transmises par la mémoire dynamique sur le bus de données. Les caractéristiques et avantages de l'invention ressortiront mieux de la description suivante, donnée à titre d'exemple et en référence aux figures annexées qui représentent: - la figure 1 un diagramme temporel des opérations d'écriture dans une mémoire SDRAM, - la figure 2 un diagramme temporel des opérations de lecture d'une mémoire SDRAM, - la figure 3 un synoptique succinct de répartition des signaux d'horloge, selon l'art antérieur, - la figure 4 un schéma du dispositif selon l'invention, - la figure 5 un diagramme temporel correspondant au schéma du dispositif selon l'invention. Grâce à l'invention, un échange fiable des données entre le circuit contrôleur et la mémoire SDRAM est possible. i15 La figure 4 représente un diagramme des circuits de l'interface de synchronisation du contrôleur, réalisant l'interface entre le contrôleur et la mémoire SDRAM. Les circuits appartenant au contrôleur sont représentés à gauche de la ligne en pointillés et la mémoire SDRAM est représentée à droite de cette ligne en pointillés. Les principales liaisons entre le contrôleur et la mémoire SDRAM, représentées sur cette figure 4, sont le bus d'adresses, le bus de données et la liaison horloge. Il y a également le bus de commande cs, ras,... dont la gestion est identique à celle des adresses et des données et qui n'est pas représenté sur la figure par mesure de simplification. Le contrôleur transmet à la mémoire SDRAM les signaux d'adresse (AD) sur le bus adresses. Les signaux de données (DO) sont échangés entre le contrôleur et la mémoire SDRAM par l'intermédiaire du bus données bidirectionnel. Enfin, le signal d'horloge H, disponible sur la sortie horloge du contrôleur, est transmis vers l'entrée horloge de la mémoire SDRAM par une liaison horloge. Ainsi, contrairement aux circuits décrits à la figure 3, le signal d'horloge provient directement du circuit contrôleur de SDRAM. Transfert des signaux vers la mémoire SDRAM Les signaux d'adresse AD proviennent d'un registre de sortie r4. Les signaux en sortie de ce registre traversent un circuit d'interface de sortie pl plus connu sous l'appellation anglaise de "pad" avant d'être disponibles sur les sorties du contrôleur. Le registre r4 reçoit sur ses entrées les signaux d'adresse internes ADi qui sont les signaux provenant des adresses reçues en entrée du contrôleur, après les nécessaires échantillonnages ou interfaçages. De même, les signaux de données DO à transmettre à la mémoire tampon proviennent d'un registre de sortie r5. Les signaux en sortie de ce registre traversent un circuit d'interface de sortie trois états ou pad p2 avant d'être disponibles sur les sorties du contrôleur. Le registre r5 reçoit sur ses entrées les signaux de données internes Diw à écrire dans la mémoire, c'est à dire les données reçues en entrée du contrôleur après les nécessaires échantillonnages ou interfaçages. Quant au signal d'horloge disponible en sortie horloge, il provient d'un circuit d'interface de sortie ou pad p3. Ce circuit reçoit sur son entrée un signal d'horloge interne clki_b qui correspond au signal d'horloge reçu en entrée du contrôleur, après inversion du signal. Le i15 signal appelé clki représente le signal d'horloge interne inverse du précédent. Les registres r4 et r5 reçoivent sur leur entrée horloge le signal Clki. Transfert des signaux vers le contrôleur Les signaux de données transmis par la mémoire SDRAM sur le bus de données sont reçus par le contrôleur pour être transmis sur l'entrée d'un registre rl. Le signal d'horloge disponible sur la sortie horloge du contrôleur est réinjecté sur une entrée horloge/mémoire du contrôleur, qui est une entrée différente de l'entrée horloge du contrôleur. Cette entrée horloge/mémoire est reliée à l'entrée horloge du registre rl, premier d'un groupe de trois registres en série. La sortie du premier registre rl est reliée à l'entrée d'un deuxième registre r2 commandé par le signal d'horloge clkib et la sortie de ce deuxième registre est reliée à l'entrée d'un troisième registre r3, lui-même commandé par le signal d'horloge clki pour fournir en sa sortie les données Dir. Opération d'écriture Les informations d'adresse et de données à écrire ADi et Di w sont "tamponnées" respectivement dans les registres r4 et r5, par exemple sur le front montant du signal d'horloge clki. Ce signal est synchrone du signal inverse clki_b qui fournit le signal d'horloge à la mémoire SDRAM à travers le circuit d'interface p3 et donc avec un retard correspondant au temps de transfert dans ce circuit. Les signaux d'adresse et de données sont échantillonnés, dans les registres r4 et r5, par le signal d'horloge clki. Ces signaux sont disponibles sur les bus adresses et données, après un temps correspondant approximativement au temps de transfert (ou de propagation) des circuits d'interface pl et p2, le temps d'établissement des données en sortie des registres, par rapport au front de l'horloge d'échantillonnage étant, en comparaison, négligeable. Le signal d'horloge H correspond au signal d'horloge interne clkib retardé du temps de transfert du circuit d'interface p3. Si l'on choisit des circuits d'interface pl et p2 possédant pratiquement le même temps de transfert que le circuit d'interface p3, le front montant du signal d'horloge H peut donc échantillonner les signaux d'adresse et de données AD et DO pendant qu'ils sont valides (en milieu de bit), ceci d'une manière certaine. Opération de lecture Le signal d'horloge transmis à la mémoire SDRAM est renvoyé sur l'entrée horloge/mémoire du contrôleur pour commander l'échantillonnage des données DO fournies par la mémoire SDRAM sur le bus de données. Du fait que l'horloge de la mémoire SDRAM est la même que l'horloge d'échantillonnage des données dans le registre rl, il n'y a pas de problème de décalage des signaux et les données sont également lues par le contrôleur d'une manière sûre. Les registres r2 et r3 permettent de synchroniser les données échantillonnées sur l'horloge interne clki. Les données lues Dir sortant du registre r3 sont synchrones de l'horloge interne clki. La figure 5 représente un chronogramme des opérations de lecture de la mémoire SDRAM mises en oeuvre par le dispositif selon l'invention. L'intervalle de temps Tpd(p3) représente le retard occasionné par le circuit interface p3 et donc le retard des signaux d'horloge H par rapport aux signaux internes clkib. Les données DO (do, d,....), disponibles, sur le bus de données, après un temps d'accès Tac suivant le front montant du signal d'horloge H, sont échantillonnées dans le registre rl sur le front montant suivant de ce signal d'horloge H. Les données do, dl... échantillonnées dans le registre rl sur le front montant de l'horloge sont disponibles en sortie du registre (rlq) après un temps d'établissement négligeable devant Tpd(p3). Les registres r2 et r3 permettent de synchroniser les données fournies en leurs sorties respectives r2q et r3q, respectivement sur le front montant de l'horloge interne clkib et clki. Il faut remarquer que si Tsu(r2) est le temps de prépositionnement des données (set-up time en anglais) en entrée du registre r2 par rapport au front montant du signal d'horloge clki b reçu en entrée et si Tq(rl) est le temps d'établissement du registre rl par rapport au front montant de l'horloge H, la période T cycle du signal d'horloge H doit satisfaire l'inégalité: Tpd(p3) + Tq(rl) + Tsu(r2) K Tcycle Cette inégalité permet de déterminer jusqu'à quelle fréquence le dispositif peut fonctionner. Dans la description donnée, le signal d'horloge disponible sur la sortie horloge du contrôleur est réintroduit sur l'entrée horloge/mémoire. i15 Ceci dans le but d'obtenir un signal le plus proche possible du signal reçu par la mémoire SDRAM. Il est bien sûr tout à fait concevable, sans sortir du domaine de l'invention, d'utiliser le signal d'horloge directement en sortie du circuit p3 pour le transmettre sur l'entrée horloge du registre rl. Les applications concernent les circuits de gestion et de commande de mémoires de type SDRAM, par exemple les circuits de gestion de mémoires vidéo telles que mémoires synchrones graphiques à accès aléatoire plus connues sous l'appellation anglaise de Synchronous Graphic RAM (SGRAM). REVENDICATIONS 1. Dispositif de synchronisation pour mémoire synchrone dynamique à accès aléatoire relié à au moins une mémoire (7) par un bus d'adresses (AD) et un bus de données (DO), la mémoire (7) ayant une entrée horloge, comprenant un premier tampon (r5) recevant des données (Diw) à transmettre vers la mémoire sur le bus de données, un deuxième tampon (r4) recevant des adresses (ADi) à transmettre vers la mémoire sur le bus d'adresses et un troisième tampon (rl) recevant les données provenant de la mémoire et transmises sur le bus de données, caractérisé en ce qu'il fournit, sur une sortie horloge, un signal d'horloge (clki_b) pour être transmis vers l'entrée horloge de la mémoire (7), en ce que le signal d'horloge (clki) exploité pour tamponner les adresses et les données est celui fourni (clkib), à une inversion de signal près, sur la sortie horloge et i15 en ce que ce même signal (clki_b) est exploité par le troisième tampon (rl) pour tamponner les données transmises par la mémoire dynamique sur le bus de données. 2. Dispositif selon la revendication 1, caractérisé en ce que les signaux en sortie des registres r4 et r5 et le signal clki_b sont transmis en sortie du dispositif à travers des circuits d'interface (pads en anglais), le circuit d'interface (p3) pour transmettre le signal d'horloge (clki b) vers la mémoire (7) ayant un temps de transfert sensiblement identique aux circuits d'interface (pl, p2) entre les tampons (r4, r5) et les bus d'adresses et de données et en ce que le signal (clki_b) exploité par le troisième tampon (rl) est celui obtenu en sortie du circuit d'interface (p3). 3. Dispositif selon la revendication 1 ou 2, caractérisé en ce qu'il comprend un quatrième tampon (r2) et un cinquième tampon (r3), en ce que les données échantillonnées par le troisième tampon (rn) sont transmises à ce quatrième tampon (r2) puis cinquième tampon (r3), ces tampons étant commandés par le signal d'horloge (clki_b) et par le signal d'horloge inversé (clki), pour fournir des données internes (Dir) synchrones du signal d'horloge clki. 4. Dispositif selon l'une des revendications précédentes, caractérisé en ce que la mémoire est une mémoire de type SDRAM. 5. Circuit de gestion d'au moins une mémoire synchrone dynamique, caractérisé en ce qu'il comporte un dispositif de synchronisation selon l'une des revendications précédentes et en ce que les données (Diw) et adresses (ADi) à transmettre à la mémoire sont les données et adresses internes au circuit de gestion provenant des données et adresses recues sur les entrées correspondantes de ce circuit de gestion.