Hlavní navigace

Technologie flash pamětí a způsoby jejich využití

25. 9. 2008
Doba čtení: 13 minut

Sdílet

V dnešní části našeho pravidelného seriálu o architekturách počítačů si blíže popíšeme technologie flash pamětí (někdy označovaných jako mžikové nebo bleskové paměti), včetně rozdílu mezi zapojením paměťových buněk typu NAND a NOR. Také si řekneme, ve kterých oblastech se paměti typu flash používají.

Obsah

1. Technologie flash pamětí a způsoby jejich využití
2. Zapojení paměťových buněk typu NOR
3. Zapojení paměťových buněk typu NAND
4. Porovnání technologií NOR a NAND
5. USB disky, kompaktní paměťové karty a další
6. Hybridní pevné disky
7. SSD – „disky“ bez pohyblivých částí
8. Literatura a odkazy na Internetu
9. Obsah další části seriálu

1. Technologie flash pamětí a způsoby jejich využití

V předchozí části tohoto seriálu jsme si popsali základní typy nevolatilních pevných pamětí, tj. pamětí, ve kterých se zapsané informace zachovají i po odpojení napájecího napětí. Také jsme si řekli, jakým způsobem pracují jednobitové paměťové buňky u nemazatelných pamětí (PROM), pamětí mazaných pomocí ultrafialového záření (EPROM) i pamětí mazaných elektrickým napětím (EEPROM, E2PROM). Dnes si blíže popíšeme princip pamětí typu flash (také označovaných termínem mžikové či bleskové paměti), tj. nevolatilních pamětí, které jsou odvozeny od EEPROM, ovšem samotná morfologie paměťových buněk a propojovací sítě mezi paměťovými buňkami je odlišná. Podle způsobu zapojení paměťových buněk i principu jejich práce rozlišujeme mžikové paměti typu NAND a NOR. Jejich podrobnější popis, včetně vysvětlení poměrně zásadních rozdílů v chování paměťového čipu při čtení, mazání a zápisu informací, bude uveden v následujících dvou kapitolách.

pc3001

Obrázek 1: Paměťový čip určený pro armádní zařízení

2. Zapojení paměťových buněk typu NOR

První mžikové paměti používaly strukturu, která byla později nazvána NOR, protože svým tvůrcům připomínala zapojení hradla typu NOR sestaveného z unipolárních tranzistorů. Na druhém obrázku je zobrazeno uspořádání paměťových buněk, ze kterého je patrné, že se každá buňka skládá z jediného tranzistoru s izolovanou elektrodou (právě ta plní paměťovou funkci, protože elektrony, které do této elektrody proniknou, zde vytvoří náboj s životností minimálně několik let), nad níž je umístěna běžná brána (u bipolárních tranzistorů by se jednalo o bázi) připojená k adresovému vodiči. Každou paměťovou buňku je díky tomu možné adresovat samostatně, proto se také zapojení mžikových pamětí typu NOR používá v těch případech, kdy je zapotřebí v nějakém obvodu nahradit paměti EPROM či EEPROM novou technologií. Samostatné adresování bitů, které jsou většinou na vnější sběrnici paměti sloučeny do bytů či delších slov, se týká čtení dat a jejich zápisu (přesněji řečeno přepisu bitů z logické jedničky na logickou nulu). Mazání, tj. nastavení bitů na logickou jedničku, se provádí po větších blocích; na rozdíl od EPROM se tedy nemusí smazat všechny bity na čipu, pouze blok o velikosti typicky několika desítek či stovek kilobitů.

pc3002

Obrázek 2: Zapojení paměťových buněk u flash pamětí typu NOR

Klasická mžiková paměť dokáže v jedné paměťové buňce uložit právě jeden bit informace, který může nabývat pouze dvou stavů – logické nuly a logické jedničky. V závislosti na velikosti náboje v izolované elektrodě se mění elektrický proud procházející tranzistorem, který je zesílen čtecím zesilovačem a poté převeden na binární hodnotu. Tato technologie se označuje SLC, podobného principu využívají prakticky všechny další typy pamětí, včetně DRAMSRAM. Některé mžikové paměti, jak typu NOR, tak i typu NAND, však používají odlišnou technologii označovanou MLC, při níž se v jedné paměťové buňce ukládají informace o dvou či třech bitech. Čtecí zesilovač tedy nerozlišuje pouze dva stavy, ale stavy čtyři či dokonce osm. Jak samotné programování, tak i čtení tedy musí být prováděno mnohem pečlivěji (ztrácí se zde snad největší přednost digitální technologie – velká odolnost proti šumu a rušení), na druhou stranu se však dosahuje větší informační hustoty, což se příznivě projevuje na ceně paměťových součástek.

pc3003

Obrázek 3: Technologie SLC a MLC se na první pohled nijak zvlášť neliší, odlišný je však způsob čtení a zápisu dat

3. Zapojení paměťových buněk typu NAND

Paměťové buňky mžikových pamětí jsou při použití zapojení typu NAND sice uspořádány do mřížky prakticky stejně, jako u typu NOR, ovšem liší se způsob jejich vzájemného propojení. Jak je ze čtvrtého obrázku patrné, je vždy několik paměťových buněk zapojeno za sebou v „sérii“. To na jednu stranu komplikuje čtení i zápisy, protože není možné přistupovat k jednotlivým bitovým buňkám, na stranu druhou to vede k mnohem lepšímu využití plochy čipu. Uvádí se, že informační hustota je při zapojení typu NAND až o 45% vyšší v porovnání s typem NOR. Nejmenší adresovatelná jednotka se nazývá stránka (page), několik stránek je sdruženo do bloku (block). Čtení a zápis dat je prováděn po stránkách, mazání po blocích. Velikost stránky je u typických čipů rovna 2112 bytům, z čehož je 2048 bytů použito pro zaznamenávaná data, zbytek je použit pro uložení detekčních a korekčních kódů. Vzhledem k tomu, že se nemohou číst či zapisovat jednotlivé bity (popř. byty), je čip vybaven registrem o délce 2112 bytů, jehož obsah odpovídá přečtené či zapisované stránce.

pc3004

Obrázek 4: Zapojení paměťových buněk u flash pamětí typu NAND

Zápis dat do jedné stránky probíhá tak, že se nejprve zapisovaná data nasunou do registru (zde je již vyplněno všech 2112 bytů, tato operace trvá 30 ns) a posléze se provede zápis celé stránky naráz, což je operace trvající cca 300 ms. Čtení je prováděno opačným způsobem – celá stránka se po cca 25 ms přesune do pomocného registru, odkud se za 30 ns data mohou přečíst a přenést po sběrnici do mikroprocesoru. Nejpomalejší operací je smazání celého bloku, které trvá cca 2 ms. Samotné řízení paměťového čipu je poměrně náročné, protože je nutné dodržet přesné časování, ovšem většinou je prováděno řadičem umístěným buď přímo na paměťovém čipu či na společném plošném spoji – jinými slovy se mžiková paměť se zapojením typu NAND nedá přímo použít jako náhrada za EPROM či EEROM. To má i své výhody, například je možné zavést realokaci vadných stránek či bloků – po cca 100 000 až 1 000 000 přepisech totiž dochází ke znefunkčnění některých paměťových buněk, takže se celá stránka stává nepoužitelnou. Realokace spočívá v tom, že se stránka (logicky) přesune na vyhrazené místo paměti, podobně jako u pevného disku. Chybná buňka se detekuje již při zápisu, nedojde tedy ke ztrátě dat. Díky realokaci se statisticky velmi významně zvyšuje životnost paměti a je také možné vyrábět a úspěšně prodávat paměťové čipy s vadnými buňkami, což výrazně snižuje výrobní náklady (uvádí se, že prakticky každý prodaný čip obsahuje alespoň jednu vyřazenou stránku).

4. Porovnání technologií NOR a NAND

V následující tabulce jsou shrnuty některé rozdíly mezi technologiemi NOR a NAND. Z tabulky je patrné, že každá technologie má svoji oblast použití, tyto oblasti se částečně překrývají:

Technologie NAND NOR
Přednosti
rychlý zápis náhodný přístup
rychlé čtení možnost zápisu po bytech
Zápory
pomalý náhodný přístup pomalý zápis
složitý zápis po bytech pomalé mazání
Aplikace
náhrada pevných disků náhrada PROM, EPROM, EEROM
úschova fotek jednoduché připojení k procesoru
záznam zvuku
pc3005

Obrázek 5: Wafer, ze kterého se po základních testech vyřezávají základy flash pamětí

5. USB disky, kompaktní paměťové karty a další

Mžikové paměti se za posledních deset let velmi rozšířily, především ve formě malých a velmi odolných paměťových karet (různých typů) a USB „disků“. První komerčně dostupné mžikové paměti používaly technologii NOR. Jednalo se například o paměťové karty určené do slotů PCMCIA. Po několika letech se prakticky u všech paměťových karet které obsahují i řadič (tj. nepřipojují se přes adresovou a datovou sběrnici přímo k mikroprocesoru, ale využívají složitější rozhraní), přešlo na technologii NAND, která je díky lepšímu využití plochy čipu obecně levnější. Všechny složitosti vznikající kvůli odlišnému způsobu adresování jsou řadičem a částečně i operačním systémem zamaskovány tak, že se paměťová karta uživateli jeví, jakoby se do ní data dala zapisovat či číst po jednotlivých bytech, což ve skutečnosti samozřejmě není pravda (poznamenejme, že to není pravda ani u diskety a pevného disku, i tam jsou data zpracovávána po sektorech). V současnosti jsou právě paměťové karty a USB „disky“ různé velikosti a tvaru snad největším sektorem, kde se mžikové paměti prosadily na úkor jiných technologií.

pc3006

Obrázek 6: Flash paměť připojitelná přes USB zabudovaná do kostky ze stavebnice Lego

6. Hybridní pevné disky

Nevolatilní paměti typu flash mohou být použity i pro konstrukci takzvaných hybridních pevných disků. Jedná se o disk vytvořený kombinací klasického pevného disku (viz díl 22 a 23 tohoto seriálu) a paměti typu flash. Pevný disk zajišťuje vysokou informační kapacitu tohoto zařízení, flash paměť je použita při čtení a především zápisu dat na disk – v podstatě se jedná o pevný disk s vyrovnávací pamětí řízenou poměrně inteligentním řadičem umístěným přímo na disku, která však není závislá na napájení. Kapacita flash paměti zabudované v hybridním pevném disku je zvolena tak, aby odpovídala zhruba dvěma až deseti procentům kapacity pevného disku. Jedná se o hodnotu zjištěnou statistickým vyhodnocením typické práce uživatele na počítači – z celkové kapacity disku se při běžné práci využije pouze její zlomek, s rostoucí kapacitou pevných disků se průměrná využitá část disku dokonce procentuálně snižuje.

Hybridní pevné disky nachází své využití především v přenosných počítačích, ve kterých přítomnost flash paměti pomáhá drasticky snížit počet přístupů na pevný disk, u kterého se tak zmenšuje počet nutných roztočení a zastavení ploten. Tím se také zmenšuje průměrná spotřeba disku, zvyšuje se rychlost přístupu k datům (není zapotřebí čekat na roztočení disku či na přesun hlaviček nad potřebnou stopu) a samozřejmě se zvyšuje také životnost hybridního pevného disku, protože především roztáčení ploten je pro každý pevný disk kritická operace, při které se přetěžuje motorek (ložiska, ve kterých je uložen trn, na kterém jsou plotny nasazeny, postupně vysychají, takže motorky starších disků musí překonávat větší tření, především při rozběhu, kdy má disk nižší teplotu) a čtecí/zápisové hlavy ještě „neplavou“ v té správné výšce nad povrchem disku. Pro správnou spolupráci pevného disku a flash paměti je samozřejmě kritické správné nastavení algoritmu, který určuje, která data mají být umístěna do flashe a které ne. Svoji roli přitom částečně hraje i omezený maximální počet zápisů do paměťových buněk flash paměti.

Kromě hybridních pevných disků popsaných v předchozích dvou odstavcích se můžeme setkat ještě s takzvanými hybridními RAM disky, u kterých je paměť typu flash nahrazena běžnou dynamickou pamětí (DRAM). Tato paměť je, jak jsme si již ostatně řekli v předchozích částech tohoto seriálu, volatilní, tj. závislá na napájecím napětí. Z tohoto důvodu jsou hybridní RAM disky vybaveny i záložní baterií, která je použita v případě výpadku napájení; tato baterie však neslouží k pohonu pevného disku (jeho roztáčení a pohybu hlav), ale jen jako zdroj elektrické energie pro DRAM. Hybridní RAM disky mohou svým uživatelům nabídnout poněkud vyšší rychlost zápisu (jedná se o rozdíl v přístupové rychlosti mezi dynamickou pamětí a pamětí mžikovou). Počet zápisů do paměťových buněk dynamické paměti není prakticky ničím omezen, na druhou stranu je však nutné použít opravné nebo alespoň detekční kódy pro data zapsaná do DRAM, protože bity uložené v paměťových buňkách DRAM mohou být smazány na logickou nulu částicemi měkkého záření.

7. SSD – „disky“ bez pohyblivých částí

Hybridní pevné disky představují, alespoň podle představ některých technologických firem, pouhou přechodovou fázi mezi klasickými pevnými disky a vysokokapacitními paměťmi, které neobsahují žádné pohyblivé části. Představitelem těchto pamětí, jež pravděpodobně čeká, především u mobilních zařízení stále častěji nahrazujících desktopy, světlá budoucnost, jsou SSD (Solid State Disc), neboli „disky“ bez pohyblivých částí. Nejedná se ve své podstatě o nic jiného než o paměť typu flash s přidaným řadičem a rozhraním, které většinou odpovídá rozhraní běžných pevných disků – SCSI, IDE či Serial ATA (viz další části tohoto seriálu). Právě z tohoto důvodu se tato paměťová zařízení označují zkratkou SSD, i když se technologicky o žádné disky nejedná – uvnitř SSD najdeme pouze několik čipů s řadičem paměti, stykovým obvodem zajištujícím standardizované rozhraní s počítačem a vlastní flash pamětí typu NAND.

pc3007

Obrázek 7: SSD firmy Intel

Největší předností SSD je oproti dalším zařízením s flash paměťmi právě fakt, že je lze použít i ve stávajících počítačích bez toho, aby bylo nutné přidávat další řadič či jakkoli zasahovat do dalších částí počítače – SSD se pouze zapojí jako další pevný disk, i svojí velikostí a konstrukčními otvory pro upevnění se většinou pevnému disku podobá. SSD firmy Samsung, jenž je zobrazený na dalším obrázku, má kapacitu 256 GB, rychlost čtení 200 MB za sekundu, rychlost zápisu 160 MB za sekundu a rozměry 9,5×100×70 mm. Průměrně je tento disk cca 2,4× rychlejší než typický pevný disk, především při uvážení faktu, že čtení i zápis dat na SSD je operace prakticky nezávislá na tom, kde se data nachází (u pevného disku je náhodný přístup k datům mnohem pomalejší než přístup sekvenční). Díky propracovanému algoritmu pravidelného „vytěžování“ jednotlivých bloků by nemělo dojít k tomu, aby došlo ke vzniku chybných sektorů (obsahujících buňky, do nichž již nelze provádět zápisy) před morálním zastaráním paměťového zařízení.

pc3008

Obrázek 8: SSD firmy Samsung s již solidní kapacitou 256 GB

Již v předchozí části tohoto seriálu jsem se zmiňoval o tom, že výrobci pevných disků postupně opouští od výroby miniaturních pevných disků o průměrech jeden palec a 1,5 palce. Problém pevných disků s takto malými průměry ploten spočívá především ve velkých nákladech na výrobu samotné mechaniky disku bez ohledu na jeho celkovou informační kapacitu. Jinými slovy to znamená, že i malý pevný disk o průměru jeden palec musí obsahovat motorek, magnetorezistivní či GMR hlavu s výkyvným mechanismem, čtecí zesilovače atd., stejně jako jeho kapacitně mnohem větší desktopový a serverový kolega. Z tohoto pohledu se pro firmy vyrábějící pevné disky jako nejmenší rozumný průměr disků jeví 2,5 palce, protože u tohoto průměru je již možné dosahovat zajímavých kapacit při zachování rozumných nákladů na výrobu. Na následujícím obrázku je ukázán jeden z odhadů budoucího vývoje cen malých pevných disků a SSD s tím, že se nepředpokládají žádné revoluční změny v technologiích těchto zařízení – například použití GMR v pevných discích vedlo ke skokovému zvýšení jejich kapacity, dnes se však, snad kromě kolmého zápisu dat na disk, k žádné takové výrazné změně technologie výrobci nechystají.

pc3009

Obrázek 9: Cenový vývoj pevných disků o velikostech 1,8 palce, 2,5 palce a SSD

SSD se v některých případech využívají paměti MLC, které na jednu stranu umožňují provést až o jeden řád menší množství přepisů (paměťové buňky jsou více náchylné na přepisy, protože se při čtení musí rozlišit čtyři či osm stavů oproti pouhým dvěma stavům), na stranu druhou jsou levnější než SLC, protože je u nich dosahováno větší hustoty informací bez nutnosti vyrábět čip s větší plochou či přecházet na technologii využívající menší aktivní a pasivní prvky na čipu.

8. Literatura a odkazy na Internetu

  1. Pavel Valášek, Roman Loskot: Polovodičové paměti,
    BEN – Technická literatura, Praha 1998, ISBN-80–86056–18-X
  2. Budínský J.: Polovodičové paměti a jejich použití,
    SNTL, Praha 1977
  3. Budínský J.: Polovodičové paměti – Názvosloví a definice,
    TESLA VÚST, Praha 1980
  4. Janů K.: Paměti a řadiče – část I.,
    ČSVTS, Knižnice mikroprocesorová technika, Praha 1982
  5. Great Microprocessors of the Past and Present (V 13.0.0)
  6. Cache Mapping and Associativity
  7. CPU cache
  8. Cache algorithms
  9. Solid State Drive,
    http://en.wiki­pedia.org/wiki/So­lid-state_drive
  10. SSD Write Limit,
    http://wiki.e­eeuser.com/ssd_wri­te_limit
  11. Flash vs. hard drives: The battle intensifies,
    http://www.solid-state.com/arti­cles/article_dis­play.html?id=272­293
  12. Hybrid Drive,
    http://en.wiki­pedia.org/wiki/Hy­brid_drive
  13. Magnetic Disk Heritage,
    http://www.mag­neticdiskheri­tagecenter.or­g/
  14. Timeline: 50 Years of Hard Drives,
    http://www.pcwor­ld.com/article/127105/t­imeline50_year­s_of_hard_dri­ves.html
  15. Novinky.cz: Výrobci: miniaturní pevné disky nemají budoucnost,
    http://www.no­vinky.cz/clanek/129888-vyrobci-miniaturni-pevne-disky-nemaji-budoucnost.html
pc3010

Obrázek 10: Výrobci USB flash disků přichází někdy se zajímavými nápady. Zde se jedná o kombinaci pera a USB disku

Cloud 24 - tip 1

9. Obsah další části seriálu

V následující části seriálu o architekturách počítačů již opustíme téma volatilních a nevolatilních pamětí, protože se začneme zabývat odlišnou problematikou. Konkrétně se bude jednat o popis různých typů sběrnicových systémů, s jejichž pomocí se ke dvěma základním jednotkám počítače – mikroprocesoru a operační paměti – připojují další zařízení, například řadiče pevných disků a disket, grafický subsystém (grafická karta či grafický akcelerátor), zvukový subsystém, síťové rozhraní atd. U některých počítačů (typicky se jedná o osmibitové počítače) a zařízení s mikrořadiči je použita velmi jednoduchá podoba sběrnice většinou řízená samotným mikroprocesorem, další typy počítačů se naproti tomu mohou pochlubit rozsáhlou hierarchií několika sběrnic se složitějším přenosovým a řídicím protokolem, u kterých je řízení převedeno na specializované integrované obvody – viz schéma typického počítače zobrazené níže, na kterém můžeme vidět hned několik sběrnic a jeden specializovaný port určený pro připojení grafických karet.

pc3011

Obrázek 11: Schéma typického desktopového PC s dvojicí standardních sběrnic PCI a ISA, AGP portem a sběrnicí určenou pouze pro připojení synchronních dynamických operačních pamětí

Byl pro vás článek přínosný?

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.