Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

SDRAM, pytania [zmiana f zegara; autorefresh]

tom_ny 03 Paź 2008 09:12 1313 5
  • #1 03 Paź 2008 09:12
    tom_ny
    Poziom 14  

    Witam

    Mam parę pytań odnośnie używania pamięci SDRAM.

    1. Czy mogę na bieżąco zmieniać częstotliwość zegara, którym taktuje SDRAM? Oczywiście przy zachowaniu wszystkich timingow z datasheetu. Byłby to wygodny dla mnie sposób zróżnicowania prędkości zapisu i odczytu z RAMu.

    2. Jeżeli będę odczytywał dane w cyklu krótszym niż 64ms to czy mogę pominąć komendy odświeżania pamięci (refresh)? O ile dobrze wyczytałem komenda auto refresh odświeża 4 banki jednocześnie. Read jeżeli nawet odświeża to pewnie tylko bank, z którego się czyta, tak?

    3. Dobrze myślę, że po zapisie do komórki dane będą wiarygodne przez te 64ms od zakończenia operacji zapisu?

    pozdrawiam
    tn

    ps. Crosspost z pl.misc.elektronika. Tam nie dostałem odpowiedzi niestety.

    0 5
  • Pomocny post
    #2 04 Paź 2008 14:58
    ktrot
    Poziom 19  

    1. Możesz zmieniać zegar w dość dużym przedziale, także w czasie pracy. W jakim zakresie zależy od użytych pamięci DRAM wchodzących w skład SDRAM.

    2.

    Cytat:
    Jeżeli będę odczytywał dane w cyklu krótszym niż 64ms to czy mogę pominąć komendy odświeżania pamięci ?

    Praktycznie nie. Odczyt lub zapis odświeża tylko jeden rząd w jednym banku. Teoretycznie więc mógłbyś odczytywać całą zawartość pamięci w czasie krótszym niż 64ms jednak dla większych pojemności pamięci nie zdążysz ponadto nie wygląda to praktycznie. Pamiętaj też, że używając komendy 'autorefresh' co 64ms musisz ją wydawać tyle raz ile jest rzędów w pamięci - dla 512Mb 8192 razy. Ponadto wszystkie banki muszą być wtedy otwarte (precharged). Adres dla kolejnych rzędów jest wtedy generowany automatycznie.

    3. Dobrze myślisz z tym, że jest to gwarantowany czas w ciągu którego dane będą wiarygodne. Rzeczywisty czas może być znacznie dłuzszy (nawet 4 krotnie) i zależy od napięcia i użytych pamięci DRAM.

    0
  • Pomocny post
    #3 04 Paź 2008 23:12
    _Matik_
    Poziom 19  

    Z moich doswiadczen praktycznych wynika ze dane w SDRAMie utrzymuja sie o wiele dluzej. Przykladowo na obrazie zapisanym w takim SDRAMie przeklamania sa malo widoczne nawet po kilkunastu sekundach. Sprawa wyszla na jaw jak sie okazalo ze kolega "zapomnial" zaimplementowac odswiezanie w sterowniku pamieci w FPGA :D.
    Oczywiscie w wiekszosci przypadkow dane po takim czasie nie maja juz wielkiej wartosci, tymniemniej wiekszosc komorek zachowuje swoje stany duzo dluzej niz to wynika z dokumentacji.
    Osobiscie uwazam ze w przypadku SDRAMu trzeba raczej korzystac z gotowych rozwiazan niz dlubac cos samemu od zera bo obsluga tego jest bardzo uciazliwa.

    0
  • #4 05 Paź 2008 10:47
    tom_ny
    Poziom 14  

    Co do drugiego pytania to w moim przypadku będzie to bardzo praktyczne bo zapis i odczyt będą odbywać się cyklicznie. A nie będę wykorzystywał wszystkich banków.

    Możecie podać przykład gotowego, taniego kontrolera pamięci SDRAM. Pytam o IC, a nie IP core. Tak jak czytałem datasheety SDRAMów to nie wydaje się to super trudne, tylko że dużo pracy przy tym będzie.

    Jeżeli już będę miał zrobiony kontroler SDRAMów to trudno będzie go przerobić na DDR SDRAM?

    0
  • #5 05 Paź 2008 11:00
    szeryf.rm
    Poziom 22  

    Ja raz zrobiłem programowy sterownik SDRAMu pod AVR atmega128 bo potrzebowałem więcej pamięci i śmigał bez problemu. Jeśli chodzi o odświeżanie autorefresh, bo w cyklu 64ms trzeba odświeżyć wszystkie wiersze o czym już tutaj napisano. Zegar NIE MA najmniejszego znaczenia w dół. Zegar to dodatek, nie musisz go nawet używać jak nie korzystasz z pamięci. Układ można przerzucić w tryb czuwania i wtedy bez zegara nawet pracuje. Jeśli zaś uzywasz zegar to możesz go zwolnić tak mocno jak tylko chcesz, byle by zdążyć wydać komendy autorefresh.

    Polecam mój stary wątek gdzie conieco opisałem jak to działa (opis łopatologiczny).
    https://www.elektroda.pl/rtvforum/viewtopic.ph...dram+avr&sid=244c482e6c0e8479565d08dea2194cab

    0
  • #6 16 Lis 2008 14:58
    tom_ny
    Poziom 14  

    Witam ponownie

    Czy jedyna metoda żeby w jednym, nieprzerwanym ciągu odczytać/zapisać dużo danych do kolejnych kolumn to sekwencyjne przełączanie Banków? Dane wtedy będą poszatkowane na dwa Banki. Da się to inaczej zrobić? Chodzi o to żeby strumień danych był nieprzerwany, aż dane się wyczerpią.

    0
  Szukaj w 5mln produktów