Pamięć dobra, choć krótka…

Na pewno wiemy już, że nasz system wyposażony zostanie w kość pamięci SDRAM… Otwartym jednak wciąż pozostaje pytanie:

Jaka dokładnie ma być ta pamięć?

Wybór pamięci SDRAM jest ogromny, więc postanowiłem sięgnąć po coś sprawdzonego i wykorzystywanego w wielu systemach prototypowych z mikrokontrolerami STM32F429/STM32F427. Okazuje się, iż zdecydowana większość z nich używa układu IS42S16400J, o pojemności 64Mb czyli 8MB. Patrząc z perspektywy gigabajtowych pojemności jakie można spotkać w przeciętnych nawet telefonach komórkowych, wspomniane kilka megabajtów nie robi większego wrażenia. Pamiętajmy jednak, iż jest to prawie 20x więcej niż będziemy mieli wbudowanej pamięci SRAM w naszym nowym procesorze.

Od strony mechanicznej, do wyboru mamy trzy rodzaje obudowy naszego scalaka – dwa z nich to obudowy typu BGA, a jedna – TSOP. Wybór jest tu dość oczywisty – montaż powierzchniowy kości BGA jest o wiele bardziej wymagający i niezbyt nadaje się do zastosowania w urządzeniu prototypowym. Z drugiej strony układy w obudowach TSOP zarówno łatwo przylutować jak i ewentualnie wylutować, np. w celu podmiany na kość o większej pojemności.

A gdzie tkwi haczyk?

Dotychczas interesowaliśmy się jedynie tym, że brakuje nam pamięci i na pewno będziemy potrzebowali dodatkowej, zewnętrznej kości. Dziś udało nam się znaleźć kandydata na to miejsce. Czy to oznacza koniec problemów? Niestety nie…

  1. Podłączenie kości pamięci pozbawia nas kilkunastu pinów procesora, które będą pełnić rolę linii adresujących oraz sterujących pracą pamięci SDRAM.
  2. Pamięć typu SDRAM, ze względu na swoją budowę, wymaga okresowego “odświeżania”. Oznacza to, iż przejście w jakikolwiek tryb niskiego poboru prądu spowoduje zniszczenie przechowywanych w niej danych, a co za tym idzie – wymusi ponownie ich wczytanie/utworzenie po wybudzeniu się urządzenia.
  3. ,

  4. W porównaniu do wbudowanej pamięci SRAM, czas dostępu jest kilkukrotnie dłuższy. Oznacza to, że wczytanie bądź zapisanie czegokolwiek do zewnętrznej kości pamięci będzie trwało znacznie dłużej niż ma to miejsce w przypadku pamięci wbudowanej. Wymusza to dokładne przemyślenie co należy umieścić w pojemnej, lecz wolnej pamięci zewnętrznej, a co pozostawić w szybkiej pamięci SRAM.
  5. Pamięć współdzieli magistralę danych z wyświetlaczem LCD. Oznacza to, iż nie jest możliwe jednoczesny dostęp do obu tych mediów. Ponadto połączenia muszą zostać zaprojektowane bardzo starannie, aby nie doprowadzić do powstawania zakłóceń.

Powyższa lista to jedynie część potencjalnych problemów, na jakie możemy się natknąć dodając pozornie tak “oczywistą” rzecz, jaką jest pamięć. Pokazuje ona również ponownie, jak bardzo złożonym procesem jest projektowanie i modyfikowanie systemów wbudowanych – zarówno tych najmniejszych, jak i tych już nieco bardziej rozbudowanych. Widzimy, że poruszenie jednego “kamienia” powoduje powstanie całkiem sporej lawiny zmian, która dotyka każdej niemalże warstwy, każdego aspektu. Wyliczmy kolejno: schemat ideowy, płytkę PCB, system zasilania, warstwę driverów sprzętu, warstwę alokacji pamięci, konfigurację linkera, wydajność i opóźnienia w systemie, mapę pamięci… Całkiem sporo tego… a czasu co raz to mniej…

Posted in Sto dni w kolorze.