NOR vs NAND: Takže si myslíte, že znáte hudbu?

Ti z vás, kteří strávili alespoň trochu času pátráním po informacích o technologiích vestavěných úložišť, to vědí: podprostor internetu věnovaný tomuto konkrétnímu tématu je zaplaven krátkými články srovnávajícími technologie NOR a NAND flash. Některé jsou velmi dobře napsané a skutečně poučné. Příliš často se však stává, že pouhé nahromadění nevýrazného, suchého a bezkontextového obsahu ve vás zanechá touhu po něčem víc. Ledaže by snad nic dalšího nebylo? Ledaže by těchto pár střípků hojně se opakujícího materiálu bylo to jediné, co se lze dozvědět? My si to nemyslíme.

Třetí článek naší úvodní série (viz část 1 a část 2) o pamětech flash je naší vlastní verzí klasiky „NOR versus NAND“. Verzí, která, doufejme, pozvedne vaše chápání těchto rozšířených technologií ukládání dat a pomůže vám lépe se rozhodovat při návrhu. Jak již bylo řečeno, tento článek není didaktickým, samostatným, úvodním textem. Je spíše doplňkem obvyklého úvodu a zabývá se aspekty technologií NOR a NAND flash, které jsou podle našeho názoru příliš často opomíjeny. Pokud jste v technologiích NOR a NAND flash úplnými nováčky, možná byste si měli nejprve projít neutrálnější materiály, jako jsou články na Wikipedii na stejné téma. Na druhou stranu, pokud již máte o těchto technologiích rozsáhlé znalosti, můžete v tomto článku přesto najít užitečné (a možná i překvapivé) střípky informací.

Přes čísla

Tabulka 1 představuje vzájemné srovnání technologií NOR a NAND flash na základě různých výkonnostních ukazatelů. Přestože se tato čísla mohou u skutečných zařízení výrazně lišit, jsou věrohodná a mohou sloužit jako cenná reference.

.

.

NOR NAND
Propustnost zápisu 1 MB/s 10 MB/s
Propustnost čtení 40 MB/s 30 MB/s
Propustnost mazání 0.1 MB/s 300 MB/s
Mazání-Propustnost zápisu 100 KB/s 10 MB/s
Granularita čtení Bajt Strana (typicky 4KiB)
Granularita zápisu Bajt (typicky) Stránka (typicky 4 KiB)
Granularita mazání Blok (64 KiB typicky) Blok (256 KiB typicky)
Spotřeba energie při zápisu 1uJ/byte 10nJ/byte
Spotřeba energie při čtení 1nJ/byte 1nJ/byte
Spotřeba energie při mazání 600nJ/byte 0.2nJ/byte

Tabulka 1. Věrohodné charakteristiky pamětí NOR a NAND flash

Ale jakkoli jsou čísla užitečná, bez správné interpretace jsou bezvýznamná, ne-li přímo zavádějící. Hrubá výkonnostní čísla jsou dobrým marketingem, protože se snadno uvádějí a chápou (alespoň povrchně), ale z hlediska návrhu aplikací nenesou mnoho relevantních informací.

Ukažme si, co máme na mysli, na konkrétním příkladu: výkonnost zápisu. Z tabulky 1 vyplývá, že zápis na paměť NAND je mnohem rychlejší než na paměť NOR. Ve skutečnosti se jedná o účelové tvrzení, které se objevuje až příliš často. Jistě, je na něm něco pravdy. Ale je také naprosto reduktivní a dláždí cestu špatným návrhovým rozhodnutím. Podívejme se na to blíže.

NOR flash umožňuje přístupy na úrovni bajtů pro zápis. Naproti tomu NAND má mnohem hrubší granularitu zápisu. Na paměti NAND flash lze data zapisovat pouze po stránkách, obvykle po 4 KiB u paměti NAND SLC (8 KiB nebo více u paměti NAND MLC). V případě malého přístupu k zápisu (řekněme 512 bajtů) se musí celá stránka načíst do paměti RAM, upravit a zapsat zpět. Nakonec se zapíše více dat, než se skutečně upraví. Tento jev se běžně označuje jako zesílení zápisu. V našem (velmi pravděpodobném) příkladu je zesílení zápisu 8 (4 KiB stránky/512bajtový přístup). Při pracovní zátěži, které dominují takto malé přístupy, by efektivní propustnost zápisu utrpěla osminásobný pokles. To je poměrně hodně. Ale je toho víc.

Před zápisem dat je musí souborový systém (nebo databáze) nejprve najít. Proces vyhledávání může být více či méně efektivní, mimo jiné v závislosti na souborovém systému a množství dostupné mezipaměti. Přesto je s každým přístupem k zápisu obvykle spojen podíl odpovídajících přístupů ke čtení. V paměti NOR flash jsou přístupy ke čtení velmi rychlé. Vyznačují se téměř nulovou latencí a velmi vysokou propustností. Nejdůležitější je, že přístupy ke čtení se provádějí na úrovni bajtů. To je výhodné zejména pro proces vyhledávání dat, protože vnitřní struktury souborových systémů bývají tvořeny malými a rozptýlenými kousky dat.

Naopak náhodné přístupy ke čtení na paměti NAND flash jsou výrazně pomalejší. A stejně jako přístupy k zápisu se provádějí na úrovni stránek. U malých přístupů to vede k určitému plýtvání, protože se stejně musí načíst celá stránka. Tato dodatečná režie, označovaná jako zesílení čtení, omezuje výkon zápisu na paměti NAND, což při pohledu na tabulku 1 není hned zřejmé.

Složíme-li to všechno dohromady, vidíme, že příslušné čisté výkony zápisu (tj. při započtení zesílení čtení/zápisu a režie vyhledávání) technologií NOR a NAND nejsou tak výrazně odlišné, jak se na první pohled zdá z čísel hrubého výkonu. A co je nejdůležitější, je zřejmé, že důkladné posouzení výkonu nelze provést bez zohlednění vzorců přístupu aplikací, včetně velikosti a rozložení přístupu v celém souboru dat.

Tráva je zelená, nebe je modré, NOR je pro kód, NAND je pro data

Je houževnatý omyl, který tu a tam slyšíme, že NOR flash je pro kód, zatímco NAND flash je pro data. Je pravda, že paměť NOR flash se pro ukládání kódu používá častěji než paměť NAND flash. Existují pro to dva hlavní důvody. Zaprvé, granularita přístupu na úrovni bajtů umožňuje provádění kódu na místě, což je pro malé vestavěné systémy nespornou výhodou. Za druhé, pro malé a střední velikosti firmwaru (řekněme pod 64 MB) dává paměť NOR jednoduše větší ekonomický smysl, protože nejmenší dostupná zařízení NAND jsou výrazně dražší.

To znamená, že mnoho našich zákazníků používá paměť NOR flash pro ukládání dat. A to z dobrého důvodu. V případě aplikací náročných na čtení nabízí NOR výrazně vyšší propustnost než NAND. I pro aplikace s velkým zatížením zápisem může být NOR rozumnou volbou. Díky přístupu na úrovni bajtů a vysoké propustnosti při čtení se paměť NOR hodí zejména pro pracovní zátěže, kterým dominují malé náhodné přístupy k zápisu. Až do bodu, kdy se čistý výkon zápisu může přiblížit (někdy dokonce překonat) výkon dosažený na paměti NAND flash. To je důležité zejména u malých datových souborů, kde se ekonomické argumenty sčítají a rozhodně vychylují rovnováhu ve prospěch pamětí NOR flash.

Chcete více?

To, co jsme popsali v tomto článku, je sotva špičkou ledovce. Doufejme však, že jsme ukázali, jak se technologie NOR a NAND flash liší z hlediska návrhu aplikací a jak lze interpretovat hrubá čísla o výkonu pro lepší rozhodování o návrhu.

Pokud si chcete přečíst více o technologiích NOR a NAND flash, hodnocení výkonu a dalších pokročilých tématech souvisejících s úložišti, uživatelská příručka TREEspan obsahuje množství informací, a to jak obecných, tak specifických pro souborový systém TREEspan (TSFS).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.