DLL/PLL sur DRAM
Contexte
Alors que la vitesse des processeurs continue d'augmenter, les performances de la mémoire constituent de plus en plus une limitation aux performances système. Pour que ces dernières augmentent, il faut que les performances de la mémoire augmentent. L'un des aspects les plus importants de l'amélioration des performances de la mémoire est l'augmentation de la vitesse de transmission en provenance et à destination des DRAM dans le système mémoire. Au début des années 1990, Rambus a créé les premières DRAM intégrant des DLL et des PLL, une innovation majeure qui a permis aux DRAM d'atteindre des taux de signalisation de 500 MHz, soit huit fois plus que les taux de communication des DRAM les plus courantes de l'époque.
Les systèmes modernes se basent sur un système de communication synchrone pour atteindre des débits de données élevés depuis et vers les DRAM du système mémoire. Les systèmes qui communiquent de façon synchrone utilisent un signal d'horloge comme référence de synchronisation afin que les données puissent être transmises et reçues selon une relation connue par rapport à cette référence. L'une des difficultés que présente la conservation de cette relation est que les variations du processus, de la tension et de la température peuvent modifier la relation de synchronisation entre les signaux de données et d'horloge, ce qui se traduit par des marges de synchronisation plus faibles. La gravité de ce problème est proportionnelle à la vitesse de signalisation, ce qui limite la possibilité de transmettre des données entre des systèmes à un débit très élevé.

La figure 1 présente l'impact sur les marges de synchronisation du processus, de la tension et de la température, pour des vitesses de signalisation élevée et faible. Pour une vitesse de signalisation faible (à gauche de la figure 1), DataPVT1 illustre la relation entre la fenêtre de validité des données (durée pendant laquelle les données peuvent être échantillonnées de manière fiable par le récepteur) et l'horloge dans des conditions de fonctionnement données. De même, DataPVT2 illustre la relation entre la fenêtre de validité des données et l'horloge pour d'autres conditions de fonctionnement. Ces deux conditions de fonctionnement représentent les conditions de fonctionnement extrêmes du système. Le circuit du récepteur n'est généralement pas capable de comprendre le décalage de la fenêtre de validité des données dû aux variations du processus, de la tension ou de la température au niveau du transmetteur. C'est pour cette raison que le circuit du récepteur est conçu de sorte à échantillonner les données comprises dans une fenêtre au cours de laquelle les données sont toujours valides, quelles que soient les conditions de fonctionnement. Si DataPVT1 et DataPVT2 représentent respectivement la fenêtre de validité des données la plus précoce et la plus tardive (par rapport au signal d'horloge), le récepteur considèrera que la fenêtre de validité des données correspond à l'intersection des deux et choisira un point d'échantillonnage dans la fenêtre résultante pour laquelle les données sont valides quelles que soient les variations du processus, de la tension et de la température.
La figure 1 montre également que si la vitesse de signalisation est faible, la fenêtre de validité des données (durée pendant laquelle les données peuvent être échantillonnées de manière fiable par le récepteur) peut être large. Même en présence d'un décalage non négligeable de la fenêtre de validité des données entre les conditions de fonctionnement extrêmes, la fenêtre de validité des données finale peut être suffisamment large pour transmettre et recevoir des données de manière fiable. C'est le cas des technologies de DRAM du type SDRAM. Cependant, dans le cas des technologies de DRAM haut débit, telles que RDRAM et DDR, les variations du processus, de la tension et de la température peuvent aboutir à la disparition de la fenêtre de validité des données. La partie droite de la figure 1 montre qu'à des vitesses de signalisation plus élevées, la fenêtre de validité des données est plus étroite, aussi bien pour DataPVT1 que pour DataPVT2, ce qui traduit le fait que les informations doivent être transmises plus rapidement lorsque les taux de signalisation sont plus élevés. Bien que les fenêtres de validité des données soient plus étroites, elles se décalent de la même manière suite aux variations du processus, de la tension et de la température (en supposant qu'aucune amélioration de fabrication ou modification de l'environnement d'exploitation n'ait été apportée). Ces fenêtres étant plus étroites, leur intersection ne permet pas d'obtenir une fenêtre de validité des données dans laquelle le circuit du récepteur peut échantillonner des données de manière fiable.

Sur la figure 2 est illustrée une source du décalage de synchronisation représenté sur la figure 1. À mesure que le processus, la tension et la température varient, les caractéristiques de synchronisation de la logique de sortie et du circuit de sortie évoluent, ce qui provoque le décalage de la fenêtre de validité des données. Afin de transmettre et de recevoir des données à haut débit, il est nécessaire de gérer cette variation de synchronisation.
Qu'est-ce qu'une DLL et une PLL ?
Les boucles à retard de phase (DLL) et les boucles à verrouillage de phase (PLL) servent les mêmes objectifs et peuvent être utilisées pour maintenir une relation de synchronisation fixe entre les signaux dans des environnements où les variations du processus, de la tension et de la température risquent de modifier petit à petit ces relations. Les DLL et les PLL comparent en permanence la relation entre deux signaux afin de régler et conserver une relation fixe entre eux par le biais d'une boucle d'asservissement. Les DRAM Rambus ont été les premières à intégrer des DLL et des PLL, une innovation majeure qui s'est traduit par une augmentation de la vitesse de signalisation par rapport aux technologies des DRAM standard.

La figure 3 illustre l'utilisation d'une DLL pour conserver la relation de synchronisation entre un signal d'horloge et un signal de données de sortie. L'un des éléments fondamentaux d'une DLL est le détecteur de phase, dont le rôle est de détecter la différence de phase entre l'horloge et les données de sortie. Une fois cette différence détectée, le détecteur de phase envoie des informations de commande via un filtre passe-bas à une ligne à retard variable qui règle la synchronisation de l'horloge interne afin de conserver la relation de synchronisation souhaitée. (Dans le cas des PLL, le réglage de la relation de synchronisation est assuré par un oscillateur commandé en tension.) L'une des difficultés inhérentes au maintien des relations de phase entre ces deux signaux est que la boucle fournissant le signal d'asservissement au détecteur de phase doit tenir compte des caractéristiques de synchronisation de la logique de sortie et du circuit de sortie. Ceci est important, car la DLL évalue la différence de phase entre l'horloge et les données du circuit de sortie. Pour y parvenir, des circuits imitant les caractéristiques comportementales de la logique de sortie et du circuit de sortie sont insérés dans la boucle d'asservissement afin de modéliser les retards de synchronisation et les changements de comportement à mesure que le processus, la tension et la température varient. L'utilisation de DLL et de PLL pour conserver les relations de synchronisation entre l'horloge et les données de sortie permet d'améliorer les marges de synchronisation (voir figure 4) et de régler l'une des contraintes majeures à l'augmentation des débits de signalisation.
Les PLL, semblables aux DLL, peuvent être aussi utilisées pour diviser ou multiplier une fréquence d'horloge système externe afin de l'utiliser dans d'autres parties d'une puce. Les PLL peuvent être utilisées pour fournir une fréquence d'horloge plus faible au noyau d'une DRAM alors que l'interface fonctionne à une fréquence d'horloge plus élevée. Lorsque les PLL sont utilisées de cette manière, il est possible d'effectuer une prélecture du noyau de la DRAM, ce qui permet à celui-ci de fonctionner à une fréquence plus basse (améliorant par là même le rendement de la DRAM) tout en permettant à l'interface de fonctionner à des vitesses plus élevées afin d'améliorer les performances du système.

En 1993, Rambus a publié les plans de conception d'une PLL fonctionnant à 500 MHz lors de l'ISSCC (International Solid State Circuits Conference), la conférence la plus importante dédiée à la conception des circuits. L'année suivante, Rambus a publié des informations détaillées sur une DLL fonctionnant à 500 MHz dans un rapport présenté lors de l'ISSCC. Les deux publications ont été récompensées par le prestigieux Best Paper Award en reconnaissance des innovations majeures qu'elles décrivaient.
Qui en bénéficie ?
L'intégration des DLL et des PLL dans les DRAM présente des avantages pour de nombreux groupes, notamment :
- Utilisateurs finals : la relation de synchronisation fixe entre les signaux de données et d'horloge augmente les performances de la DRAM, et donc les performances système.
- Fabricants de DRAM : le réglage de la relation de synchronisation en cas de variation du processus, de la tension et de la température améliore les marges de synchronisation, ce qui aboutit à un rendement de la DRAM supérieur et, de ce fait, à une réduction des coûts de production.
- Concepteurs de cartes et de contrôleurs : en autorisant des taux de transfert par broche élevés, les DLL et les PLL permettent aux concepteurs de contrôleurs de réduire le nombre de broches E/S, ce qui réduit les coûts de fabrication, le nombre de composants, ainsi que la surface et la complexité du routage.
- Intégrateurs système : la possibilité qu'offrent les DLL et les PLL d'assurer des relations de synchronisation fixes permet aux fabricants de composants et aux intégrateurs système d'assouplir les caractéristiques techniques. Dans les systèmes dont les caractéristiques de température et de tension sont variables, les exigences thermiques et énergétiques du système peuvent être assouplies sans que cela nuise aux marges de synchronisation des DRAM, tout en abaissant les coûts de fabrication du système, de l'alimentation et de la solution thermique.
