Jakie są różnice i gdzie byś ich użył?
Jest wiele kompromisów.
Wikipedia także:
Pomimo dodatkowych tranzystorów, zmniejszenie przewodów uziemiających i linii bitowych pozwala na gęstszy układ i większą pojemność na układ. Ponadto pamięć flash NAND zwykle może zawierać pewną liczbę błędów (pamięć flash NOR, jak używana w pamięci ROM systemu BIOS, powinna być wolna od błędów). Producenci starają się zmaksymalizować ilość użytecznej pamięci, zmniejszając rozmiar tranzystora poniżej wielkości, w której można je wykonać niezawodnie, do wielkości, w której dalsze redukcje zwiększyłyby liczbę błędów szybciej niż zwiększyłyby całkowitą dostępną pamięć.
Tak więc lampa błyskowa NOR może adresować łatwiej, ale nie jest nawet tak gęsta.
Jeśli spojrzysz na całkiem przyzwoity plik PDF z porównaniem.
NOR ma niższą moc rezerwową, jest łatwy do wykonania kodu i ma wysoką prędkość odczytu.
NAND ma znacznie niższą moc czynną (zapis bitów jest szybszy i tańszy), wyższą prędkość zapisu (o wiele), znacznie wyższą pojemność, znacznie niższy koszt na bit i jest bardzo łatwy w użyciu do przechowywania plików. ze względu na niższą prędkość odczytu podczas korzystania z niego do wykonywania kodu, naprawdę musisz go zepsuć, aby RAM.
Cytując małą sekcję ze wspaniałym stołem nad nią ...
Lampa błyskowa NAND jest tańsza, więc jeśli chcesz, możesz jej użyć. Wadą jest to, że nie jest tak niezawodny. Błysk NAND jest szybszy w większości operacji, z godnym uwagi wyjątkiem są małe odczyty o swobodnym dostępie. Jeśli chcesz odczytać kilka bajtów z losowego adresu w pamięci, NOR jest szybszy. W przypadku odczytów z dużej pamięci, NAND radzi sobie całkiem dobrze i faktycznie pokonuje NOR dla wystarczająco dużych porcji.
Większość wbudowanych systemów operacyjnych zawiera kod korygujący błędy w NAND Flash. Istnieją również mikrokontrolery z sprzętową korekcją błędów. Prawdziwy problem zdarza się w czasie rozruchu - programy ładujące pierwszego poziomu nie mają kodu korygującego błędy i nie skonfigurowały jeszcze kontrolera pamięci do uruchamiania sprzętowego ECC. To trochę problem z kurczakiem i jajkiem - nie możesz załadować kodu ECC bez błędów, ponieważ jeszcze go nie załadowałeś.
Aby obejść ten problem, niektórzy producenci pamięci określają określony region układu, który gwarantuje brak błędów (pierwsze 4 kB lub coś w tym rodzaju). Umieszczasz tam bootloader z oprogramowaniem ECC (jak U-boot ), odczytujesz go bez błędów, a następnie używasz go do odczytywania jądra systemu operacyjnego, korygując błędy podczas pracy. Możesz także przechowywać program ładujący w pamięci flash szeregowej i po prostu używać pamięci flash NAND do dużych rzeczy, takich jak jądro systemu operacyjnego lub system plików.
Uważam, że ta nota aplikacyjna Atmel jest przydatna: http://www.atmel.com/dyn/resources/prod_documents/doc6255.pdf
NOR pozwala na losowy dostęp, ale NAND nie (tylko dostęp do strony).
Z Wikipedii :
źródło