Sterownik pamieci DDR
Masz problem? Zapytaj na forum elektroda.pl
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Sterownik pamieci DDR
Date: Sat, 8 Jul 2006 22:18:38 +0200
Witam,
Skad pobrac darmowy, gotowy sterownik pamieci DDR z szyna 16-bitowa, do
polaczenia z szyna Wishbone?
Pawel
From: "Greg\(G.Kasprowicz\)" <gkasprow_at_nospam_gmail.com>
Subject: Re: Sterownik pamieci DDR
Date: Sun, 9 Jul 2006 00:55:01 +0200
Skad pobrac darmowy, gotowy sterownik pamieci DDR z szyna 16-bitowa, do
polaczenia z szyna Wishbone?
napisz do wlasciciela projektu z opensources
ja sie przymeirzam przerobic moj stary do SDRAM, tyle ze z prostym
interfejsem..
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Re: Sterownik pamieci DDR
Date: Sun, 9 Jul 2006 07:59:16 +0200
"Greg(G.Kasprowicz)" <gkasprow_at_nospam_gmail.com> wrote in message
news:e8pd45$8kh$1_at_nospam_news.onet.pl...
Skad pobrac darmowy, gotowy sterownik pamieci DDR z szyna 16-bitowa, do
polaczenia z szyna Wishbone?
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ł
From: "Greg\(G.Kasprowicz\)" <gkasprow_at_nospam_gmail.com>
Subject: Re: Sterownik pamieci DDR
Date: Sun, 9 Jul 2006 11:25:55 +0200
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.
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
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Re: Sterownik pamieci DDR
Date: Sun, 9 Jul 2006 17:24:19 +0200
"Greg(G.Kasprowicz)" <gkasprow_at_nospam_gmail.com> wrote in message
news:e8qi33$1sl$1_at_nospam_news.onet.pl...
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.
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
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ł
From: "Greg\(G.Kasprowicz\)" <Grzegorz.Kasprowicz_at_nospam_CERN.CH>
Subject: Re: Sterownik pamieci DDR
Date: Mon, 10 Jul 2006 15:42:32 +0200
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.
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?
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Re: Sterownik pamieci DDR
Date: Tue, 11 Jul 2006 20:11:07 +0200
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ł
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Re: Sterownik pamieci DDR
Date: Sun, 9 Jul 2006 11:06:44 +0200
"Greg(G.Kasprowicz)" <gkasprow_at_nospam_gmail.com> wrote in message
news:e8pd45$8kh$1_at_nospam_news.onet.pl...
Skad pobrac darmowy, gotowy sterownik pamieci DDR z szyna 16-bitowa, do
polaczenia z szyna Wishbone?
napisz do wlasciciela projektu z opensources
ja sie przymeirzam przerobic moj stary do SDRAM, tyle ze z prostym
interfejsem..
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ł
From: "Greg\(G.Kasprowicz\)" <gkasprow_at_nospam_gmail.com>
Subject: Re: Sterownik pamieci DDR
Date: Sun, 9 Jul 2006 11:22:25 +0200
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
w obrebie otwartej kolumny dostep masz niemal natychmiastowy, latencja to
kilka CLK
mozesz sobie otworzyc 4 kolumny jesli pamiec ma 4 banki
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).
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
Chętnie usłyszałbym dodatkowe wskazówki które umożliwią podniesienie
wydajności sterownika do rozsądnego poziomu.
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
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Re: Sterownik pamieci DDR
Date: Sun, 9 Jul 2006 16:58:44 +0200
Chętnie usłyszałbym dodatkowe wskazówki które umożliwią podniesienie
wydajności sterownika do rozsądnego poziomu.
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
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...).