Każdy system wbudowany (Embedded System) musi zawierać procesor główny – CPU, pamięć operacyjną – RAM (Random Access Memory) oraz pamięć nieulotną, której zawartość można modyfikować – NVM (Non-Volatile Memory). W ostatnich kilku latach obserwowaliśmy intensywny rozwój w obszarze wszystkich trzech wymienionych grup komponentów. Procesory ARM błyskawicznie przeszły z architektury 32-bitowej na 64-bitową oraz z częstotliwości taktowania mierzonych w MHz do poziomu gigaherców, a dodatkowo standardem stały się układy wielordzeniowe (Multicore Processors). Najsłabszym ogniwem okazały się pamięci, ale producenci tych komponentów szybko nadrobili zaległości.
Pamięci w systemach embedded
Pierwszym w pełni półprzewodnikowym rodzajem pamięci, która umożliwia budowanie złożonych systemów embedded, jest pamięć Flash. Powstała ona z rozwinięcia technologii EEPROM i – w zależności od budowy komórek pamięci oraz ich wzajemnego połączenia – dzieli się na:
- pamięć Flash typu NOR,
- pamięć Flash typu NAND.
W NOR Flash każda komórka jest indywidualnie połączona z linią bitową, natomiast komórki NAND Flash są połączone szeregowo z linią bitową. Struktura szeregowa zmniejsza liczbę połączeń, co skutkuje zwiększeniem gęstości układu – przy tej samej technologii procesu pamięć NAND Flash zajmuje o około 60% mniej przestrzeni niż pamięć NOR Flash. W naturalny sposób wpływa to na koszt produkcji (wytwarzanie pamięci NOR Flash jest droższe), ale ma też istotny wpływ na parametry układów.
NOR Flash
Pamięć NOR Flash charakteryzuje się dużą szybkością odczytu i zapewnia swobodny dostęp do każdej komórki pamięci. Możliwe jest bezpośrednie odwołanie do dowolnej lokalizacji w pamięci, bez konieczności adresowania na poziomie bloków. Te dwie kluczowe cechy czynią pamięć NOR Flash idealną do przechowywania kodu programu sterującego, takiego jak BIOS komputera.
W pamięciach Flash obu typów dane mogą być zapisywane tylko wtedy, gdy komórki zostały wcześniej wykasowane. Kasowanie danych w pamięci NOR Flash przebiega relatywnie wolno – każdy pojedynczy bajt musi być „wyczyszczony”. Trwa to nawet kilkaset razy dłużej niż w przypadku NAND Flash – na przykład układ Cypress NAND Flash S34ML04G2 wymaga 3,5 ms, aby usunąć blok o wielkości 128 kB, podczas gdy pamięć Flash Cypress NOR S70GL02GT potrzebuje około 520 ms, aby wykasować sektor o tym samym rozmiarze. To różnica prawie 150-krotna. Wolne kasowanie danych w pamięciach NOR wydłuża również operację zapisu, dlatego układy NOR Flash często oferują rozwiązania wyposażone w funkcję buforowania danych.
Pamięci te pobierają ponadto więcej energii w trakcie zapisywania danych, niż ma to miejsce w przypadku NAND Flash, ale są bardziej energooszczędne w trakcie samego odczytywania danych oraz w trybie standby. Zatem w urządzeniach zasilanych bateryjnie i innych zastosowaniach, w których problematyczne okazuje się zużycie energii, pamięci NOR Flash stanowią doskonałą opcję.