Sterownik pamieci DDR

Jul 08, 2006 9 Replies

Witam,



Skad pobrac darmowy, gotowy sterownik pamieci DDR z szyna 16-bitowa, do polaczenia z szyna Wishbone?



Pawel



napisz do wlasciciela projektu z opensources ja sie przymeirzam przerobic moj stary do SDRAM, tyle ze z prostym interfejsem..

Eee, nie bêdê mu zawraca³ g³owy. Dokumentacjê do kostki DDR znalaz³em, my¶lê ¿e sterownik napiszê sam. Pewnie z pocz±tku nie bêdzie superszybki (nie bêdzie optymalny) ale poprawi siê z czasem.

Pawe³

Tak przy okazji, poniewa¿ rozmawiam z osob± która realizowa³a podobny sterownik, mam pytanko (jestem informatykiem, w temacie FPGA dopiero raczkujê i traktujê to jako hobby).

Rozpoczêcie nowej transakcji z pamiêci± SDRAM (DDR SDRAM te¿) jest kosztowne - trzeba wybraæ kolumnê w banku, potem poleceniem READ przeczytaæ wiersz który i tak bêdzie "wysuwany" po czasie "CAS latency". Korzysta siê z dobrodziejstwa transakcji wi±zkowych ("burst"), tak¿e d³u¿szych z u¿yciem przeplotu banków, które i tak nie rozwi±zuj± problemu - dostêpy do komórek pamiêci na ogó³ nie s± sekwencyjne. Jak wygl±da sprawa przyrostu wydajno¶ci takiego sterownika po zastosowaniu dodatkowego bufora zbiorowo-asocjacyjnego? Czy to jest du¿y narzut LE w FPGA? (mam na my¶li dodatkow± logikê, sam bufor bêdzie pewnie w DPRAM). Wybra³em bufor zbiorowo-asocjacyjny bo z jednej strony warto czytaæ wiêksze kawa³ki danych (w kodzie programu bywaj± pêtle, uk³ad wy¶wietlaj±cy grafikê czyta raster sekwencyjnie), z drugiej strony warto buforowaæ ró¿ne obszary (procesor zarówno wykonuje kod jak i operuje na stosie/danych, uk³ady peryferyjne tak¿e operuj± na pamiêci przez DMA).

Chêtnie us³ysza³bym dodatkowe wskazówki które umo¿liwi± podniesienie wydajno¶ci sterownika do rozs±dnego poziomu.

Pawe³

w obrebie otwartej kolumny dostep masz niemal natychmiastowy, latencja to kilka CLK mozesz sobie otworzyc 4 kolumny jesli pamiec ma 4 banki

implementacja takiego bufora (o ile jest naprawde potrzebny) nie zajmie duzo LE ja caly kontroler SDRAM wyciskajacy z niej co sie da, zmiescilem w mniej niz

200LE wraz z mechanizmami obslugi DMA. Implementowalem tez bufory uzywajac DPRAM na potrzeby transakcji PCI (na pokladzie mam karte gigabit ethernet) z cala logika i buforami upchnalem to w mniej niz 400LE (lacznie z pci master/slave) ruszyl bez wiekszych problemow, obsluga pameici jest dosyc prosta, choociaz stare DRAM byly jeszcze prostsze

a do czego konkretnie ci trzeba? zeby nie tracic cykli mozesz otworzyc jeden bank, i nie czkajac na aktywacje, otowrzyc 2, potem zapodac odczyt w 1 , potem w 2, tak na przemian, wtedy nie tracisz cykli na NOPy

moze prosciej przerobic istniejacy SDR SDRAM z interfejsem wishbone ? DDR iSDR nie roznia sie znacznie, maja bardzo zblizone sekwencje dczytu, zapisu, rozkazy sa przesylane chyba na 1 zboczu, dopiero przy transferze pracuja na 2 zboczach IMHO modyfikacja bedzie dosyc niewielka

Projektujê proste urz±dzonko które wygeneruje mi 4 obrazki z ruchomymi napisami, wyj¶cia w standardzie PAL. Zatem ³±cznie z procesorem do pamiêci dostaje siê 5 "masterów". Podejrzewam ¿e nie ma sensu optymalizowaæ sterownika pamiêci, ale z czystej ciekawo¶ci chcia³em wiedzieæ co mo¿naby poprawiæ (kto wie, mo¿e kiedy¶ siê przyda...).

Nie do koñca. Korzystam z oprogramowania Altium Designer (wiem, niektórzy maj± do tego podobne podej¶cie jak inni do Microsoft, ale mi siê podoba). Mam tu gotowy komponent sterownika SDRAM (bez ¼róde³) który chyba sam inicjuje pamiêæ (nie wiem, jest dziura w dokumentacji). Do³o¿enie zatrzasków na wyj¶ciu w celu zasymulowania 32-bitowej pamiêci SDRAM z 16-bitowej DDR SDRAM nie rozwi±zuje problemu - w obydwu typach pamiêci na nieszczê¶cie identycznie programuje siê "burst length". Czyli - mówi±c w skrócie - sterownik bêdzie zapisywa³ / odczytywa³ po³owê ¿±danych danych.

Pawe³

to sciagnij z altery darmowy IP napisany w calosci w vhdl, tego da sie przerobic inne pytanie: czy naprawde potrzebuejsz DDR? SDR moze by wystarczyl?

Dziêki za wskazówkê.

SDRAM napewno by wystarczy³, ale projekt realizujê na gotowej p³ycie startowej ze Spartanem 3E, na której fabrycznie zamontowano 256Mbit DDR.

Pawe³

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required