Create PDF, Job 3
Transcription
Create PDF, Job 3
2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques Section A SDRAM PC 100/133 Etude du fonctionnement 2Atech – octobre 2001 Section A - Page 1/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques 1 - Présentation La technologie SDRAM (Synchronous DRAM) remplace la technologie EDO DRAM (Extended Data Out) permettant d’atteindre une fréquence de fonctionnement de 133 MHz. Nous allons étudier le fonctionnement spécifique de cette mémoire. Le module SDRAM PC100-133 est constitué de plusieurs composants de mémoire dynamique, d’une EEPROM de 256 octets et de quelques composants passifs. Ce module dispose d’un connecteur DIMM 168 broches permettant l’accès au bus de données de 64 bits à 80 bits (selon le contrôle de parité), à un bus d’adresse de 14 bits et à un bus de commande. Le rôle de l’EEPROM est de fournir à l’ordinateur les différentes caractéristiques fonctionnelles du module pour que ce dernier soit correctement utilisé (SPD : Serial Presence Detect). Elle est accessible indépendamment de la SDRAM via le protocole serie I2C. Les 128 premiers octets ne sont accessibles qu’en lecture et contiennent les informations de fonctionnement, les 128 autres sont libres en écriture/lecture. Pour connaître la signification des différents octets de l’EEPROM il faut se référer au document SPD disponible. Pour l’application, la connaissance de ces informations n’est pas indispensable parce que nous utilisons le module de SDRAM en mode dégradé (basse fréquence -capacité mémoire restreinte : fonctionnement commun à tous les types de SDRAM) Les composants SDRAM constituant le module sont pilotés de façon identique. L’étude d’un composant de SDRAM revient à l’étude du module complet, seule la capacité mémoire varie. 2 - Etude d’un composant SDRAM Figure 1 - Structure interne SDRAM 2Atech – octobre 2001 Section A - Page 2/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques La figure 1 présente la structure interne d’une SDRAM de 128 Mbits ( 512 colonnes x 4096 lignes x 4 pages x 16 bits). Par exemple, en plaçant 4 composants comme celui-ci partageant le même bus d’adresse et de commande, nous obtenons un module de SDRAM de 64 MO avec un bus de données de 64 bits. Nous avons une structure de 4 pages possédant chacun un système d’adressage multiplexé. Le multiplexage est piloté par le bus de commande constitué des entrées suivantes : CKE : entrée de validation de l’horloge CS : entrée de validation de la mémoire RAS (Row Access Strobe) : entrée permettant le chargement de l’adresse de la ligne CAS (Column Access Strobe) : entrée permettant le chargement de l’adresse de la colonne WE : entrée de selection du mode (Ecriture ou lecture) Nous retrouvons un bus d’adresse d’une largeur de 14 bits. Ce dernier est complété par un bus de largeur 2 bits BA0 et BA1 (omis dans le schéma) pour la sélectionner d’une page parmi les quatre. Le bus de données DQ0 à DQ15 dispose d’un masque nommé ici LDQM et UDQM (couramment DQMBx). Ce masque permet la mise en haute impédance du bus. LDQM est le masque de poids faible et UDQM celui de poids fort. Sur le connecteur DIMM 168, il existe 8 masques pour le bus de 64 bits (DQMB0 à DQMB7). 2.1 - Les différentes commandes de la SDRAM Pour le fonctionnement de la SDRAM, il est indispensable de suivre une procédure d’initialisation mais aussi une procédure de rafraîchissement tout au long de son utilisation. Ci-dessous, le tableau des différentes commandes disponibles : H : Niveau haut / L : Niveau bas / V : Données valides / x : indifférent Figure 2 - Commandes de la SDRAM La première remarque tient à la singularisation de l’entrée A10 du bus d’adresse : ce bit a pour autre dénomination AP (pour Auto Precharge). 2Atech – octobre 2001 Section A - Page 3/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques Avant de décrire ces différentes instructions, il est indispensable de bien comprendre le diagramme d’état de la page suivante qui établit les différents processus de fonctionnement d’une mémoire de type SDRAM. Le schéma ci dessous représente les différents états de la SDRAM associés aux différentes fonctions. Figure 3 - Diagramme d’état Séquences automatiques (en gras) – Séquences manuelles (en fin). A la mise sous tension, la SDRAM doit être initialisée : cela se traduit par le pré-chargement de toutes les pages (PALL), suivi de 2 à 8 séquences de rafraîchissement (CBR Auto Refresh), terminé par le chargement de la configuration de la SDRAM (MRS). 2Atech – octobre 2001 Section A - Page 4/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques Configuration de la SDRAM La SDRAM dispose de plusieurs modes de fonctionnement et il est indispensable de fixer ce mode avant toute instruction d’écriture et de lecture. La configuration se fait à l’aide de la fonction MRS (Mode Register Set), le code de configuration se trouvant sur le bus d’adresse A0-A13. Figure 4 - Registre de configuration Les trois premiers bits M0 à M2 (Burst Length) correspondent au nombre de séquences d’écriture et de lecture pour une unique fonction d’écriture ou de lecture. La figure 5 montre un exemple avec un burst length de 4 (010) lors d’une fonction d’écriture. 2Atech – octobre 2001 Section A - Page 5/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques Figure 5 - Ecriture en mode burst Le quatrième bit de configuration M3 précise l’utilisation du ‘burst’, la différence entre ces 2 modes est expliquée dans le tableau suivant. Pour notre application, le mode séquentiel a été retenu. Le bit M9 définit le ‘burst’ soit pour la lecture soit pour la lecture et l’écriture. Dans notre cas, nous utiliserons un ‘burst’ de 8 séquences pour la lecture et l’écriture. Figure 6 - Longueur du burst et adressage Attention ! Dans le tableau, A2,A1 et A0 correspondent à l’adresse de colonne sélectionnée (lors d’une séquence de lecture ou d’écriture) et non du registre de configuration définissant la taille du ‘burst’. Il reste la configuration du CAS latency définie par les bits M4 à M6. Contrairement à l’écriture dans la SDRAM, la lecture bénéficie d’un retard : le CAS Delay. Il s’agit du nombre de cycles d’horloge entre l’instant t0 où l’instruction de lecture est émise et l’instant t1 où les données sont présentes sur le bus. Ce délai peut être de 2 ou 3 cycles d’horloge. 2Atech – octobre 2001 Section A - Page 6/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques Figure 7 - Lecture et CAS latency (Retard) Ce chronogramme nous présente les 2 solutions. Pour notre application, un délai de 3 cycles a été retenu. La phase d’initialisation étant terminée, la SDRAM se retrouve dans un état repos « Idle » (voir diagramme d’état). A ce stade, les procédures de lecture et d’écriture sont autorisées. Avant d’étudier ces deux fonctions, nous allons nous intéresser au rafraîchissement de la mémoire. Rafraîchissement de la mémoire En cours d’utilisation, il est nécessaire de rafraîchir l’ensemble de la mémoire sous peine de perte d’informations. Le type de rafraîchissement est défini par 2 paramètres qui se trouvent inscrits dans l’EEPROM SPD. Il s’agit du temps de cycle de rafraîchissement (Tref = en règle générale 64 ms) et du nombre de lignes des pages (2048, 4096, 8192). La procédure de rafraîchissement est simple : sur une période définie par Tref, il faut effectuer 2048, 4096 ou 8192 fonctions de rafraîchissement. Pour des modules de 64 MO, les paramètres à retenir sont, dans la majorité des cas, 4096 rafraîchissements sur une période de 64 ms. Nous allons effectuer ses rafraîchissement à l’aide de la fonction CBR auto refresh (CAS BEFORE RAS). Il existe une fonction Self refresh (start and exit) qui permet de mettre la SDRAM en veille sans perte de données mais aucune fonction de lecture ou d’écriture n’est autorisée. Séquence de rafraîchissement : avant d’effectuer la fonction CBR auto-refresh, il faut pré-charger au préalable toutes les pages avec la fonction PALL (pré-charge All Banks). Procédure d’écriture et de lecture En suivant le diagramme d’état, lorsque la mémoire est initialisée, nous sommes en attente soit d’une fonction d’activation de ligne, soit de rafraîchissement, soit de configuration du registre ou de standby. Pour toute séquence de lecture ou d’écriture, l’activation d’une ligne d’une page est indispensable. Avec la fonction ACT (Bank Activate), nous allons fixer le numéro de ligne et le numéro de page. Le bus d’adresse A0-A13 contient le numéro de ligne (une ligne parmi 4096 dans notre exemple) et le bus BA0-BA1, le numéro de page (une page parmi quatre). Le numéro de colonne sera fixé par la fonction d’écriture ou de lecture. Le bus d’adresse contient alors le numéro de colonne sur les bits A0-A9 et A11-A13. Le bit A10 a pour but de spécifier la fonction émise : lorsque A10=1, les fonctions d’écriture et de lecture se terminent avec le préchargement automatique de la page en cours (utile pour changer de numéro de ligne sans effectuer une fonction de pré-chargement). 2Atech – octobre 2001 Section A - Page 7/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques En bref : Pour écrire ou lire dans une case mémoire, il faut effectuer les opérations suivantes : Pré-chargement de la page par le biais de la fonction PALL (Précharge all banks) ou PRE (Pré-charge select bank)* Activation de la page et du numéro de ligne par la fonction ACT (Bank Activate) Instruction d’écriture ou de lecture avec le numéro de colonne. Si le paramètre ‘burst length’ est n, alors à chaque cycle, le numéro de colonne est automatiquement incrémenté et ceci pendant n cycle permettant de récupérer n données. A la fin de cette séquence, si la fonction de pré-chargement automatique a été choisie (AP=A10=1), Il faut impérativement réactiver une page et une ligne avant d’effectuer une opération de lecture ou d’écriture. Pour lire ou écrire sur la même ligne et la même page mais dans une colonne différente, il suffit de renouveler la fonction de lecture ou d’écriture avec le numéro de colonne si le mode de préchargement automatique (AP=A10=0) n’a pas été validé. Sinon, il faut réactiver la même ligne et la même page avant d’effectuer la fonction de lecture ou d’écriture. * La fonction PRE permet le pré-chargement d’une seule page déterminée par le bus BA0-BA1, le bit A10 étant fixé à 0. Dans la fonction PALL, le bit A10 est à 1. Dans le cadre de notre projet, nous utiliserons qu’une seul page. Toutes ces fonctions sont soumises à des timings spécifiques propres à chaque module et inscrites dans l’EEPROM SPD. Dans notre cas, le fonctionnement à basse fréquence permet de s’affranchir en partie des contraintes de temps. 2.2 - Timing des fonctions La séquence d’initialisation : comme nous l’avons vu précédemment, elle met en place les fonctions de pré-chargement (PALL), de rafraîchissement (CBR auto refresh) et de configuration du registre SDRAM (MRS) Figure 8 – Timing de la séquence d’initialisation 2Atech – octobre 2001 Section A - Page 8/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques Le timing essentiel à respecter est le suivant : après alimentation du module, il est nécessaire de respecter un temps de 100 à 200 us afin d’obtenir la stabilité des différents signaux de commande. La fonction PALL (ou PRE) de pré-chargement engendre une attente minimum de tRP avant toute autre fonction. L’ordre de grandeur de ce temps est de 15 à 25 ns. tRFC est associé à la fonction CBR auto Refresh, il varie de 66 à 90 ns au minimum. Enfin, après la fonction MRS de configuration du registre, un temps d’attente minimum de 2 cycle d’horloge doit être respecté (tMRD = 2 CLK) Les paramètres tRFC et tRP se retrouvent lors de la séquence de rafraîchissement : pré-chargement de toutes les pages (PALL) suivi d’une ou plusieurs fonctions de rafraîchissement CBR auto refresh. Figure 9 - Timing de la séquence de rafraîchissement Phase d’écriture : nous nous limiterons à l’étude de l’écriture sans pré-chargement automatique utilisée dans le buffer d’image. Figure 10 - Timing de la séquence d’écriture 2Atech – octobre 2001 Section A - Page 9/10 2Atech - Etude et Développement - www.2Atech.com - Solutions informatiques & électroniques Nous sommes en présence d’une SDRAM configurée avec un ‘burst’ de 4. La fonction WRITE est précédée de la fonction d’activation de la page (ACT). Le timing à respecter entre ces deux fonctions est noté tRCD et est de l’ordre de 15 à 25 ns minimum. Avant tout changement de ligne (dans le cadre de la fonction WRITE sans pré-chargement automatique), il est nécessaire d’effectuer une opération de pré-chargement (PRE ou PALL). Il faut alors respecter l’attente tRP déjà vue dans les séquences d’initialisation et de rafraîchissement. Il reste à voir 2 timings importants tRAS et tRC. tRAS est le seul timing possédant une consigne maxi, il correspond au temps entre une fonction d’activation (ACT) et une fonction de pré-charge (PRE ou PALL) (et non, l’inverse car il s’agit de tRP). Ce temps a pour valeur mini 40 ns et 120 us pour valeur maxi. En d’autre terme, lorqu’une ligne a été activée par la fonction ACT, elle ne peut être désactivée avant 40 ns à 60 ns (pas de changement de ligne possible durant cette période) et ne peut pas rester activer plus de 100 à 120 us. Enfin tRP, correspond lui au temps entre deux fonctions d’activation (ACT) sur la même page. Nous pouvons traduire cela par le temps mini entre 2 changements de ligne dans la même page. Sa valeur mini est comprise entre 60 et 90 ns. Phase de lecture : la fonction READ possède un retard défini lors de la configuration du registre de la SDRAM. Ce retard qui peut être de 2 ou 3 cycles d’horloge correspond au temps entre l’appel de la fonction lecture et la présence des données sur le bus. Figure 11 - Timing de la séquence de lecture Nous retrouvons les mêmes consignes tRCD,tRAS, tRP et tRC que pour la procédure d’écriture. La fréquence maxi. d’utilisation est fonction des paramètres suivants : CAS latency, tRCD et tRP. L’unité utilisée pour ces paramètre est le cycle d’horloge. 2Atech – octobre 2001 Section A - Page 10/10