Wpis z mikrobloga

Hej próbuję zrozumieć parę rzeczy odnośnie DDR, a to nie jest takie łatwe głownie z powodu tego, że nie ma jakoś szczególnie dużo źródeł - oczywiście są opisy standardu itp, ale na początek potrzebuję czegoś co będzie mniej przytłaczające, żeby krok po kroku załapać.

Mam pytanie odnośnie DDR4 SDRAM i jako przykład wykorzystam uproszczony schemat memory controllera z LS1028 SoC.

1) jak memory controller komunikuje się z bus masterem, czyli z CPU lub DMA (jak rozumiem)? Na schemacie mamy tylko "Request from master", "Address from master" itp? Czy tam (między bus masterem a memory controllerem) jest coś należące do standardu AMBA? Np. AXI, APB itp?
2) co to jest byte lane w kontekście DDR?
3) Zgodanie z tym co jest w RM do 1028 SoC: "Data bus widths supported: 32-/36-bit" - do czego to się odnosi? Do połaczenia między memory controllerem a pamięcią czy bus masterem a memory controllerem?

Co do pytania nr. 2. to może trochę wyjaśnię.
Z tego co rozumiem to na takim niskim poziomie pamięć składa się z wierszy oraz kolumn (pomojając bank groupy, banki, ranki). W przypadku DDR4 ilość linii adresowych do określenia kolumny wynosi 10 bitów a więc mamy 2^10 kolumn czyli 1024.
W zależności od konfiguracji - x4 / x8 / x16, każda z tych kolumn zawiera określoną ilość bitów danych odpowiednio 4 / 8 / 16.

W momencie gdy bus master chce odczytać jakąś wartośc z pamięci, memory controller wykonuje odpowiednią sekwencję komend w wyniku których
do sense amplifiera "trafia" dany wiersz z ranku, bank groupy, banku. Następnie po zdekodowaniu adresu kolumny dane trafiają na linie DQ, które w zależności od konfiguracji (jw) mogą być DQ[0..3], DQ[0..7], DQ[0..15] a następnie te dane trafiają do memory controllera. W związku z tym co w tym kontekscie oznacza:
- Burst Length 8 / BL8 mode ?
- byte lane ?

#embedded
pepepanpatryk - Hej próbuję zrozumieć parę rzeczy odnośnie DDR, a to nie jest takie ł...

źródło: image

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach