Momenteel ben ik bezig met het uitzoeken hoe SDRAM werkt.Nu snap ik wel wat het commando precharge doet. In de zin van dat het achter elk Read/write commando verstuurd moet worden. Maar nu vraag ik me af wat er tijdens het precharge actie in het SDRAM gebeurt? Dit heeft volgens mij iets te maken met de versterk die op de geheugen cellen zitten.

Ik weet niet precies wat SDRAM is.
Je heb SRAM waarbij het geheugen echte flipflops zijn Het zal altijd zijn inhoud vast houden zolang er spanning op staat.
DRAM = Dynamisch ram. Daarbij bestaan de geheugen cellen uit hele kleine condensatoren. Die verliezen na een korte tijd al spanning. Deze moet dus continu gelezen worden en de originele inhoud weer worden terug gezet.

SDRAM weet ik niet.

SDRAM is synchroon dynamisch ram. Synchroon in de zin van dat je als gebruiker een klok moet aanbieden, en na je lees-commando een paar klokken (de CAS-latency) moet wachten tot je data eruit komt.

Dat terzijde, de precharge hoeft niet eens na iedere read (al is dat wel de makkelijkste manier).

De precharge sluit een rij af, zoals de activate (RAS-puls) hem geopend heeft.
Je mag meerdere reads (CAS-pulsen) tussen een activate en een precharge doen, zolang ze maar allemaal uit dezelfde rij komen.

Maar zodra je uit een andere rij wil lezen (of wil schrijven) moet je de huidige rij eerst sluiten, en dus een precharge commando geven.

Dus als ik het goed begrijp sluit precharge alleen de row af. En waarom hoef dan de colum niet afgesloten te worden?

En wat doet dan de auto precharge? betekend dit dan eigenlijk dat men naar een read/write commando meteen naar de idle state gaat.En klopt het dan dat de sdram controller tussen door precharge commando uitvoert.

De kolom kan niet afgesloten worden door de manier waarop SDRAM intern in elkaar zit. Uitlezen gaat per rij, waarin de kolom-adresbitjes alleen maar een deel van de rij selecteren (omdat de rij intern veel langer is dan de data-bus breed)

Auto-precharge betekent precies dat.

Zoek eens een datasheet van Micron SDRAM op, die zijn de duidelijkste die ik ooit gezien heb. SDRAM is enorm gestandariseerd, dus eigenlijk heb je maar een datasheet nodig voor alle fabrikanten. (Op details na natuurlijk. Maar het gebruik is bij iedere fabrikant hetzelfde).

De S in SDRAM gaat over de interface naar de rest van de "computer", dus heeft hier niets mee te maken.

Bij DRAM zit de data opgeslagen in kleine condensatortjes die met een transistor op de bitlijn kan worden aangesloten. Er zijn vele bitlijnen. Die transistoren worden door een rij-lijn voor een hele rij aan- of uit-gezet.

Door nu een condensatortje met z'n bitlijn te verbinden zou je zeggen dat de bitlijn de spanning van de condensator overneemt. Helaas is de capaciteit van de bitlijn groter dan die van het kleine condensatortje. Het gevolg is dat er charge-sharing plaatsvind. Zeg de kleine condensator is 1pF (*) en de bitlijn 10pF, dan zal de spanning van de bitlijn maar 0.5V worden als de 5V bit-condensator ontladen wordt in de bitlijn.

De truuk is nu om de bitlijn op te laden naar het kantelpunt: 2.5V. Sluit je nu de condensator op de bitlijn aan, wordt de spanning 2.75V als ie 5V was, en 2.25V als ie 0V was. Dit zal door een versterker weer naar 0V en 5V vertaald worden en zo heb je je bitje uitgelezen!

Dit naar 2.5V brengen van de bitlijnen heet precharge.

(*) Random voorbeeld getallen. Heeft niets met de werkelijkheid te maken. De werkelijke waardes liggen orde groottes kleiner!
[edit: ] interesse gewekt. Ik heb even zitten zoeken. In een 90 nm proces hebben ze het over 25 fF. Tegenwoordig wordt geloof ik onder de 30nm gewerkt? In moderne chips verwacht ik dus rond de 10fF (volgens mij is het lineair met de schaling, maar dat is ook maar een educated guess... In mijn zoekacties is wel duidelijk dat de capaciteit met de tijd afneemt. Hoe ouder het artiekel hoe meer fF ze opgaven.... ).

[Bericht gewijzigd door rew op (14%)]

De precharge heb je ook nodig om die bitrij, zoals rew aangeeft, weer terug te copieren in de bitcellen.
Het uitlezen van de dram cellen is namelijk destructief!

als de 5V bit-condensator ontladen wordt in de bitlijn.

Zijn de huidige DRAMs in de computers niet al lager dan 2V en met een zeer kleine capaciteit zou je eerder zeggen dat je beter de stroom richting kan meten?

De S in SDRAM gaat over de interface naar de rest van de "computer", dus heeft hier niets mee te maken.

|:(

mm ik snap niet het verhaal van het charge-sharing nog niet helemaal.

Feitelijk kun je toch zeggen dat er twee condensatoren op elkaar worden aangesloten. Waarvan de bitlijn een grote capaciteit heeft. En die van de van de ram cel een kleine capaciteit heeft. Er even van uitgaan dan de er op de bitlijn een spanning staat van 5 volt. En er van uitgaande dat de consator van de ramcel leeg is . Dan snap ik niet dat er in de ram cel maar een waarde van 0.5 volt komt te staan. zelf zou ik dit denken dat de spanning wel iets zou in zakken. Vergelijk baar met een glas bier waar men wat bier overschenkt naar een wat kleiner glas. Dan zal er in het grote glas wel iets minder bier in zitten. Maar hij is dan toch niet zo goed als leeg.

@blurp

Ik heb de datasheet gelezen van Micron SDRAM dit gaat voornamelijk over hoe en niet waarom.

De thread verloopt een beetje van het gebruikt van SDRAM naar de principe-werking van dynamisch geheugen... Voor dat laatste heb je inderdaad niet veel aan een datasheet.

En je draait het om, het is geen 5V op de bitlijn die voor 0.5V in de bit-capaciteit zorgt, maar 5V in de bit-capaciteit die 0.5V (of 2.75V door precharge) op de bitlijn zorgt.

Zonder precharge:

Bit = 0V, bitlijn 0V, na uitlezen => 0V
Bit = 5V, bitlijn 0V, na uitlezen => 0.5V

Met precharge:
Bit = 0V, bitlijn 2.5V, na uitlezen 2.25V
bit = 5V, bitlijn 2.5V, na uitlezen 2.75V

Het gaat inderdaad meer over het principe werking van het dram.

zijn er nog mensen die een goede website weten waar het charge-sharing verhaal word uitgelegd.

1ste hit in google (dram precharging):
http://en.wikipedia.org/wiki/Dynamic_random-access_memory

De bitlijn heeft een veel grotere capaciteit!
In jouw vergelijk met het bier: Je gooit er een borreltje bij of je schept er een borreltje uit.
Met een vol glas of leeg glas zie je in een van de gevallen geen verschil, leeg blijft leeg, of vol loopt over.

Als je met een half glas begint is er wel in beide gevallen wel een verschil te zien.

Blurp z'n voorbeeld is helemaal juist.

Benleentje heeft helemaal gelijk dat moderne RAMs met lagere spanningen werken. We doen even alsof het 5V is, omdat met 1.8V rekenen lastiger is. Gewoon als voorbeeld.

Bierglas is de bitlijn, het bitje is het borrelglaasje.

Je hebt ook nog een derde glas, waar precies een bierglas plus borrelglas inpast.

Charge sharing: Gooi bier+borrelglas in het grotere glas en kijk naar het niveau.

Beide vol -> groter glas is precies vol. Beide leeg, groter glas is precies leeg. Maar is het bierglas vol en de borrel leeg, krijg je "bijna vol" in het grotere glas. Zo simpel is het.

Je zou nu het bitje op twee manieren kunnen "meten". Je kan het bierglas helemaal leeg maken, dan samen met de (eventuele) borrel in het grotere glas gooien. Heb je nu meer dan het niveau van "halve borrel" zat er wat in het borrelglas, heb je minder dan het niveau van "halve borrel" zat er waarschijnlijk niks in het borrelglas. Maar als je nu het bierglas niet 100% leeg hebt gegooid, gooi je bij het bijmekaar gooien toch nog wat uit het bierglas in het grotere glas. Tja. Da's al snel een halve borrel....

Verder is het electronisch "lastig" om zo dicht bij de nulwaarde exact te meten. Veel makkelijker is om in de buurt van "een half glas" te meten.

Dus wat ze doen is ze maken het bierglas (bitlijn) zo nauwkeurig mogelijk "halfvol" (de helft van de voedingsspanning). Dan doen ze hem samen met het al-dan-niet-volle borrelglas in de grotere beker en kijken nauwkeurig naar het niveau ten opzichte van "precies halfvol". Was de borrel leeg, -> onder de helft, was de borrel vol, krijg je meer dan de helft.

Het is me nu helemaal duidelijk. zeker door het bier glas en het borrelglaasje.Bedankt allen!!!

Het is me nu helemaal duidelijk. zeker door het bier glas en het borrelglaasje.Bedankt allen!!!

Te diep in het glaasje gekeken? Ik zie nu een dubbelpost! :-)