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