Bonjour,
J'aimerais comprendre pourquoi il faut systématiquement précharger les bit-lines avant de lire une cellule de RAM...
Merci.
-----
Bonjour,
J'aimerais comprendre pourquoi il faut systématiquement précharger les bit-lines avant de lire une cellule de RAM...
Merci.
A propos, en fait, quelqu'un connaitraît-il un site assez poussé sur l'architecture interne des mémoires RAM (SRAM, DRAM, SDRAM,...)
Merci, bonne soirée...
Bonjour,
Pour faire très simple, il y a 2 grandes familles dérivées des technos de bases :
les SRAM = Static RAM
les DRAM = Dynamic RAM
1/ Les SRAM gardent leur contenu tant que la tension appliquée est au-dessus du min. Leur avantage principal : très faible conso en mode standby
Leur désavantage principal : plus chère par bit car il faut 4 à 5 transistors par bit.Leur capacité max est d'ailleurs toujours bien en deça de celle des DRAM
2/ les DRAM
Il y a eu les EDO-DRAM, SDRAM, DDR-SDRAM,....
Le principe de base est qu'elles doivent périodiquement etre raffraichies pour ne pas perdre leur contenu. Pour rafraichir il suffit de lire chaque adresse régulièrement. A ce moment là le 'condensateur' (= 1 bit) est rechargé et recommence doucement à se décharger...
Avantage : 1 seul trans. par bit -> prix moins elevé et intégration beaucoup + poussée
Les temps d'acces sont beaucoup plus rapides que les SRAM.
Désavantage : impossible de les mettre en "vrai" standby (il existe un mode self-refresh mais il consomme beaucoup plus que les SRAM.
Quelques liens :
http://www.commentcamarche.net/pc/ram.php3
http://www.klabs.org/richcontent/Tut...ules/sdram.pdf
et bien sur google ;=)
Je n'ai peut être pas été très clair dans ma question. Je la reformule plus précisément:
On considère une RAM comme une matrice (supposons carrée) comprenant un grand nombre de points mémoire.
La lecture (ou l'écriture) s'effectue comme suit:
- un décodeur decode (!) la moitié de l'adresse. Ceci sélectionne une ligne de points mémoire;
- toute cette ligne est lue: l'information (0 ou 1) contenue dans chaque cellule descend le long de connexions appelées "bit lines" ;
- en bas, un second décodeur décode (! ) la seconde moitié de l'adresse et sélectionne la colonne voulue.
Avant chaque lecture, il faut précharger les bit lines à la tension haute du circuit. Ma question est: pourquoi?
Que l'on doive les égaliser, je comprend, mais pourquoi pas à la tension basse?
NB: merci RISC pour les liens... ça ne répond pas tout à fait à ma question. Mais si tu veux mieux comprendre de quoi je parle, la précharge y est évoquée dans celui-ci: http://www.klabs.org/richcontent/Tut...ules/sdram.pdf
Notamment p.14 et sur les p.8 et 9, mais ça n'explique pas le pourquoi...
Merci d'avance à tous de se pencher sur ce problème existenciel!
La RAM stocke les données dans des colonnes et des lignes qui sont situées dans les modules de mémoires (comme dans le cas d'un livre par exemple).
Il faut donc des délais pour accéder aux colonnes et aux lignes (pages et paragraphes d'un livre...) mais aussi un délai pour accéder aux différents modules (à différents livres...).
Le "Precharge time" correspond au temps séparant deux signaux d'accès à une ligne sur des modules différents.
La valeur est en général de 3 cycles et on peut l'abaisser à 2.
c'est aussi un timing qui peut être maintenu à 3 cycles pour favoriser l'augmentation du FSB...ou l'abaisser si le CAS (column address strobe) reste inaccessible.
Je ne sais pas si ça répond à ton attente.
@+
Oui et non. Ta réponse me donne des détails que j'ignorais, mais ne répond pas vraiment à ma question.
Le "Précharge Time" correspond à un délai, ok: c'est le temps nécessaire à la précharge. Mais ça ne dit toujours pas pourquoi il faut précharger les bit-lines à 1.
Pfff j'en ai marre de cette question. Je suis sûr que la réponse doit être évidente, mais je ne la trouve nulle part (enfin, j'y ai pas passé la journée non plus...).
Merci pour l'aide en tt cas!
En mode restauration, l'opération de lecture décharge la capacité de la cellule, donc elle doit être suivie d'une opération d'écriture (mise à 1) pour restaurer la même valeur sur la position lue.
@+
Je ne parle pas du mode restauration.
C'est d'ailleurs aussi bien valable pour les DRAM que pour les SRAM (qui ne nécessitent pas de restauration...)
Bon reprenons, imagine schématiquement une capa de 2pF avec un coté à la masse et l'autre relié à un switch.
L'autre borne du switch relié à une autre capa cette fois de 30pF l'autre borne de cette capa reliée à la masse.
La 1ere capa de 2pF s'appelle la capa de "bit line", la seconde de 30pF est la cellule mémoire ou capa de stockage.
La lecture (Read) est initiée quand le switch est fermé.
La modification de la tension sur la capa "bit line" signifie que la valeur de la capa de stockage est mémorisé dans le "bit line".
Quand le switch est fermé la modif de la tension du "bit line" signifie le stockage (mémorisation du 1 ou du 0).
L'opération de Read détruit le contenu de la cellule de stockage bien évidemment, une ré-écriture est donc nécessaire après chaque Read.
C'est pour cela que les "bit line" sont mis à 1 dans la phase de restauration nécessaire après une lecture.
Je vois pas comment être plus clair.
Bon, voilà, finalement, j'ai trouvé, en cherchant un peu dans ma tête et sur internet. Le cours suivant est pas mal fait: http://fp.cse.wustl.edu/dzar/463/Lectures/lect16.pdf
(voir page 7: "Precharge both bitlines high") C'est ce high qui m'embêtait.
Il faut de toute façon commencer par égaliser les deux bit lines. Ca, c'est normal. C'est à partir de la différence de tension que le point mémoire va induire sur ces bitlines qu'on va déterminer l'information qui y était stockée.
Alors, pourquoi ne pas précharger à 0?
Je suppose que c'est simplement parce que, à dimension égale, un NMOS est plus puissant qu'un PMOS, et qu'il sera donc plus rapide de faire descendre une bitline de 5V à 0V que d'en faire monter une de 0V à 5V.
Voilà, ce n'est qu'une supposition...
Si quelqu'un a une meilleure / autre explication, elle est évidemment toujours très bienvenue!
Hum désolé, mais justement, je crois que l'ordre de grandeur est plutôt l'inverse: la capa de bitline est bien plus grande que celle d'un point mémoire, ce qui rend la lecture si compliquée.Bon reprenons, imagine schématiquement une capa de 2pF avec un coté à la masse et l'autre relié à un switch.
L'autre borne du switch relié à une autre capa cette fois de 30pF l'autre borne de cette capa reliée à la masse.
La 1ere capa de 2pF s'appelle la capa de "bit line", la seconde de 30pF est la cellule mémoire ou capa de stockage.
La lecture (Read) est initiée quand le switch est fermé.
La modification de la tension sur la capa "bit line" signifie que la valeur de la capa de stockage est mémorisé dans le "bit line".
Quand le switch est fermé la modif de la tension du "bit line" signifie le stockage (mémorisation du 1 ou du 0).
L'opération de Read détruit le contenu de la cellule de stockage bien évidemment, une ré-écriture est donc nécessaire après chaque Read.
C'est pour cela que les "bit line" sont mis à 1 dans la phase de restauration nécessaire après une lecture.
Je vois pas comment être plus clair.
Moi, je parlais bien de la précharge des bitlines AVANT une lecture, pas après, pour une quelconque restauration (inutile dans le cas d'une SRAM).
Voici pour illustrer quelque peu le sujet le schéma d'une cellule de SRAM type à 6 transistors...
Bon, une dernière question alors: pourrait-on imaginer une précharge à mi-tension, du genre 2,5V (si tension haute = 5V).
Pourquoi pas? Trop complexe de générer un signal à 2,5 dans un circuit logique?
Gain de performances négligeable?
Non non, l'ordre de grandeur est bien celui là, ce qui est cohérent avec le fait que la donnée stockée doit avoir une durée de vie plus grande que le bit line qui lui doit changer très souvent.Hum désolé, mais justement, je crois que l'ordre de grandeur est plutôt l'inverse: la capa de bitline est bien plus grande que celle d'un point mémoire, ce qui rend la lecture si compliquée.
Moi, je parlais bien de la précharge des bitlines AVANT une lecture, pas après, pour une quelconque restauration (inutile dans le cas d'une SRAM).
Je ne parle pas de Sram bien sur qui comme Risc l'a souligné ne fonctionne pas pareil, vu que le rafraichissement est ici indispensable et le principe de "bit line" est intimement lié à cette techno.
Cela dit je crains que tu n'est pas compris le principe du "bit line" et de la procédure de lecture-écriture par restaurations successives.
Peut-être que d'autre sauront mieux que moi t'expliquer son principe, je ne vois pas comment faire plus simple que mon précédent post.
@+
Si si j'ai bien compris la procédure de lecture-écriture par restaurations successives.
Elle est nécessaire pour la DRAM, où les points mémoire ne sont que de simples capas, qui perdent leur charge, et qu'il faut donc restaurer régulièrement...
Quelle que soit la technologie, on parle de "bitline" pour les connexions qui viennent lire les cases mémoire.
Quant au cas de la DRAM, la capa de la bitline est de l'ordre de 10 fois supérieure à celle des points mémoire. C'est bien normal, puisqu'il s'agit de lignes traversant toute la matrice, alors que les cellules mémoire sont minuscules.
Bien le bonjour,
J'étais en train de réviser mon cours de mémoire et je me suis posé la meme question que toi ... j ai donc cherché sur le net et suis tombé sur ce post.
Bon voici ce que dit mon cours si ca peut t'aider :
Les bits lines sont maintenues par des pull ups. Des que la wl atteint vth l access transistor rentre en regime de saturation et le transistor n de l inverseur rentre en regime ohmique. Decharge capacitive de bl a travers le pont transistor n - access transistor. Voila peut etre le pourquoi du comment, en maintenant bl a un certain niveau on assure le fontionnement des transistors d acces.
Allez savoir ... faut que je revise ce cours, ca m'ennerve ... au moins je suis sur que plus tard je ne serai pas designer memoire ...
Allez A+
Bonjour
1: Dans une DRAM la moitié des condensateurs de stockage est connectée au VCC , l'autre au VSS , il n'y a pas de tension "avantagée" ce qui compte c'est la présence ou non de charge dans le condo!
2: En effet la lecture est destructrice, c'était d'ailleurs déjà vrai dans les mémoire à tores, une ligne ouverte (activation du RAS) doit être préchargée (restaurée) avant que le temps TRAS max(généralement de l'ordre de la centaine de µs) ne soit écoulé.
IL faut aussi rafraichir les reste des lignes cycliquement , à 15 Hz environ(64ms).
Le temps de rétention dépend de la techno(donc du constructeur) et de la température, à froid (-40°c) les données peuvent survivre pendant plusieurs minutes, ce qui explique pourquoi les stratégies logicielles qui reposent sur la présence ou l'absence d'une information particulière dans un mot mémoire sont stupides!
3: Les avantages des DRAM sont leur densité et donc leur cout de fabrication, car les ram statique sont plus rapides, c'est même la raison des caches L1,L2,L3.
4: Le mode self refresh est très efficace pour conserver l'information, le courant consommé est ridicule compte tenu de la quantité d'info sauvegardées.
Pour tout savoir mais en anglais :http://download.micron.com/pdf/technotes/TN4605.pdf
ce n'est qu'un exemple car ce site regorge d'information.
JR
Après plus amples recherches, il s'avère qu'en pratique, la préchare est effectivement souvent effectuée à une tension intermédiaire. Par exemple 3,5 Volts si VDD = 5V, soit à 70%. Il est préférable d'avoir plus de 50% car un PMOS charge moins vite qu'un NMOS ne charge (à dimensions égales).