Hlavní navigace

Čtyřicet let od vzniku mžikových pamětí (Flash)

Revoluce, kterou způsobily tablety a chytré mobilní telefony, by nebyla možná bez použití technologie mžikových pamětí (Flash). Princip, na němž jsou tyto paměti postaveny, byl přitom vynalezen již v roce 1980.
Pavel Tišnovský
Doba čtení: 31 minut

Sdílet

11. Příklad Flash paměti první generace

12. Způsob zapojení paměťových buněk typu NOR

13. Způsob zapojení paměťových buněk typu NAND

14. Operace mazání, zápisu a čtení v mžikových pamětech

15. Zápis více bitů do jediné paměťové buňky

16. Omezení technologie MLC

17. Porovnání technologií NOR a NAND

18. Hybridní pevné disky a další aplikace mžikových pamětí

19. Literatura

20. Odkazy na Internetu

1. Vývoj nevolatilních pamětí – od maskou programovaných ROM až pro mžikové paměti (Flash)

Naprostá většina digitálních zařízení používaných v současnosti obsahuje nějakou formu nevolatilní paměti, tj. takové paměti, jejíž obsah je zachován i tehdy, pokud není zařízení napájeno. Typů nevolatilních pamětí existuje celá řada, ovšem u těch pamětí, kde je vyžadován rychlý zápis a současně i velká kapacita, je použita technologie mžikových pamětí (flash). Jedná se až o překvapivě starou technologii, protože její základy byly položeny již v roce 1980, kdy se designem tohoto typu paměti začal zabývat Fujio Masuoka ze společnosti Toshiba.

Obrázek 1: Paměti ROM v osmibitových mikropočítačích Atari obsahovaly jak základní systém, tak i interpret Atari BASICu.

Ovšem samotná mžiková paměť je odvozena od technologie EEPROM (stejný typ tranzistoru) a ta zase od technologie EPROM (idea plovoucího hradla se zachycenými elektrony), takže se v první polovině článku budeme zabývat těmito z historického hlediska staršími paměťmi a posléze si popíšeme i paměti Flash, jejich vlastnosti, omezení atd.

Obrázek 2: Osmibitový mikropočítač ZX81 s osmi kilobajty paměti ROM obsahující interpret jazyka BASIC a další potřebné subrutiny.
Zdroj: Wikipedia.

Prakticky všechny dále popsané paměti (až na PROM) jsou založeny na více či méně upravené struktuře tranzistoru MOSFET. Týká se to maskou programovaných ROM s klasickými MOSFETy i EPROM, EEROM a Flash pamětí, které používají MOSFET doplněný o takzvané plovoucí hradlo (podrobnosti jsou uvedeny v následujícím textu).

Obrázek 3: Struktura tranzistoru MOSFET.

2. Maskou programované ROM

Ve výpočetní technice se používají či používaly různé typy nevolatilních pamětí. Vývojově nejstarší, ale stále ještě pro některé účely využívané, jsou paměti ROM (Read-Only Memory), do kterých jsou informace zapsány již při výrobě čipu; jednou zapsanou hodnotu již nelze běžnými postupy změnit. Jedná se o paměti, na jejichž čipu se vyskytuje několik vrstev, v nichž je vytvořena pravidelná síť vodorovných a kolmých vodivých cest propojených v místech spoje tranzistory.

Obrázek 4: Nevolatilní paměť s kapacitou 256 kilobitů.

Báze (resp. spíše brány, protože se většinou jedná o unipolární technologii) tranzistorů jsou zkonstruovány takovým způsobem, že je příslušný tranzistor buď stále otevřen (vodivý) nebo naopak stále uzavřen (nevodivý). Otevřený tranzistor představuje bit s logickou hodnotou jedna, tranzistor uzavřený pak logickou nulu (ovšem mnohé paměti obsahují na výstupu obvody pro logickou negaci). Konfigurace bází jednotlivých tranzistorů se určuje již při výrobě čipu s využitím poslední masky (každá vrstva je v planární technologii vytvářena s jinou maskou, přes kterou se takzvaný wafer tvořící základ budoucích čipů ozařuje).

Obrázek 5: Principiální schéma paměťové sítě ROM (technologie MOS).

Výroba maskou programovaných ROM, jak se těmto typům pamětí někdy říká, je velmi levná, protože se v podstatě jedná o prakticky nejjednodušší formu uchování informací na křemíkových čipech, u které je možné dosáhnout velké informační hustoty a tím pádem i malé ceny v přepočtu na jeden bit (rychlost přístupu k datům může dosahovat hodnot 10–20 ns). Nákladné je však prvotní vytvoření masky pro výrobu čipů, a z tohoto důvodu se tyto typy pamětí vyplatí vyrábět pouze při velkém množství kusů a to ještě pouze za předpokladu, že se maska (resp. obsah výsledné paměti) nebude v různých verzích finálního produktu měnit. Dnes, kdy je zapotřebí dodávat elektronické výrobky na trh co nejrychleji s tím, že se případné chyby v návrhu vyřeší (čti možná lépe řečeno „obejdou“) novou verzí firmware, se proto již maskou programované ROM příliš často nepoužívají v těch oblastech, kde se nejedná o statisícové či milionové sady výrobků. Jako jejich náhrada se buď nasazují elektricky mazatelné ROM (EEPROM) či mžikové paměti (Flash), což je, jak si ostatně povíme v dalších kapitolách, v mnoha ohledech upravená forma elektricky mazatelných ROM.

Obrázek 6: Kolmý řez paměťovým čipem v místě jednobitové paměťové buňky.

Poznámka: i když jsme si v předchozím odstavci řekli, že se maskou programované ROM nepoužívají pro „malé“ série výrobků, u sérií objemných může být využití této ROM výhodné, zejména v situaci, kdy není možné už od výrobce čipu objednat například předprogramovaný mikrořadič (v tomto případě se dnes typicky používají OTP EPROM zmíněné v dalším textu).

Vzhledem k tomu, že tento článek je zaměřen spíše na historii, uvedeme si několik příkladů ROM programovaných jednorázově při výrobě pomocí masky. Jedná se o čipy s malou integrací (LSI), které jsou součástí tehdy populární (bipolárních) technologie známé u nás jako řada 7400 (za „x“ se přitom nedosazuje číslice, ale znak, který blíže určuje použitou technologii, například použití Schottkyho diod atd.):

# Čip (označení) Stručný popis
1 74×88 256bitová ROM s organizací 32×8 bitů
2 74×186 512bitová ROM s organizací 64×8 bitů
3 74×187 1024bitová ROM s organizací 256×4 bity
4 74×270 2048bitová ROM s organizací 512×4 bity
5 74×271 2048bitová ROM s organizací 256×8 bitů
6 74×370 2048bitová ROM s organizací 512×4 bity
7 74×371 2048bitová ROM s organizací 256×8 bitů
     
8 74×262 5760bitová ROM obsahující znaky teletextu v masce 5×9 pixelů (celkem 128 znaků)

Tyto čipy se používaly například jako náhrada složitějších logických sítí (ROM je rychlejší řešení, navíc bez hazardů), pro dekodéry apod. Pokud by například neexistoval speciální obvod pro převod z BCD kódu na kód určený pro sedmisegmentové displeje (klasická čísla), bylo by možné takový obvod vytvořit z jakékoli ROM, která má osmibitovou šířku datové sběrnice (ve skutečnosti to však není nutné, protože existují čipy 74×46, 74×47 atd.). Podobně lze vytvořit rychlou čtyřbitovou sčítačku nebo násobičku pouze s ROM s nízkou kapacitou (256×4 bity pro sčítačku, 256×8 bitů pro násobičku), ALU s výběrem čtyř operací v paměti 1024×4 bity apod.

Obrázek 7: Sčítačka realizovaná pamětí ROM s 256×4 bity.

Dalším příkladem maskou naprogramovaných ROM je čip HN613128P, který nabízel kapacitu 16384×8 bitů. Ostatně pro ROM/EPROM atd. je dosti typické, že je k dispozici relativně velké množství datových vodičů (minimálně bajt), na rozdíl od RAM, kde bylo nutné šetřit počtem pinů. Tento čip se používal dosti často v dobách osmibitových domácích mikropočítačů, protože jeho kapacita 16kB prakticky vždy bohatě dostačovala jak pro uložení vlastního operačního systému (resp. systému na pomezí BIOSu a reálného operačního systému), tak i interpretru programovacího jazyka BASIC. Tento čip nalezneme například v některých modelech slavného osmibitového domácího mikropočítače ZX Spectrum – zde pochopitelně počet vyrobených počítačů dosahoval takových čísel, že se návrh a důsledné otestování masky vyplatilo.

Obrázek 8: ZX Spectrum s pamětí ROM realizovanou čipem HN613128P.
Zdroj: https://k1.spdns.de/Vinta­ge/Sinclair/82/Sinclair%20ZX%20Spec­trum/PCB%20Images%20(ortho­gonal)/

Poznámka: ve skutečnosti existovalo více čipů podobných HN613128P, takže některé modely ZX Spectra (a prakticky všechny jeho klony) budou používat odlišný čip. Nicméně na principu – pro velké série výrobků ROM programovatelná maskou – to nic nemění.

Obrázek 9: Jednoduchá ALU se čtyřmi funkcemi realizovaná pamětí ROM 1024×4 bity.

3. Elektricky programovatelné ROM (PROM)

Další formu nevolatilních pamětí představují elektricky programovatelné ROM (PROM). Jedná se o paměti, které je možné naprogramovat pouze jedenkrát, přesněji řečeno hodnoty bitů se mohou měnit pouze z logické jedničky na logickou nulu (naopak to není možné). Technologie těchto pamětí jsou založeny, podobně jako u výše popsaných maskovaných ROM, na pravidelné mřížce, v jejíž spojích se nachází vhodným způsobem upravený polovodičový prvek. Zatímco u maskovaných ROM jsou báze těchto prvků (tranzistorů) buď uzemněny nebo naopak připojeny na konstantní kladné napětí (podle konfigurace poslední masky i podle toho, jak jsou tranzistory konstruovány), obsahují elektricky programovatelné ROM ve spojích diody (méně často i tranzistory) sériově spojené se speciálně upravenými rezistory. Čip je z výroby dodáván v takové podobě, že jsou tyto polovodičové prvky vodivé, tj. všechny bity při čtení obsahují logickou jedničku. Samotné programování, které se provádí ve speciálním přípravku, je založeno na destruktivním přerušení spojů v těch místech, kde má být zapsána logická nula.

Obrázek 10: Typická paměťová matice PROM.

Zápis dat je prováděn po jednotlivých bitech takovým způsobem, že je na příslušnou svislou vodivou cestu přivedeno relativně vysoké napětí (například 20V) a vodorovná vodivá cesta je uzemněna. V místě spoje vodorovné a svislé vodivé cesty se nachází polovodičový prvek a k němu sériově připojený rezistor (dichromová spojka, nověji spojka z polykrystalického křemíku), kterými začne protékat poměrně vysoký proud. Ten způsobí, že se rezistor zahřeje na tak vysokou teplotu, že je jeho odporová část rozprášena do svého okolí (což je oxid křemičitý, který teplo následně rozptýlí) a spoj se přeruší bez praktické možnosti jeho obnovy – příslušný bit je trvale vynulován. Důvod, proč musí být v každém spoji kromě rezistoru (ten sám o sobě plní paměťovou funkci), přítomna i dioda, spočívá v tom, že se sousední bity nesmí při čtení navzájem ovlivňovat. Pokud by dioda nebyla použita a tři bity ve čtverci tvořeném čtyřmi sousedními bity, by byly nastaveny na jedničku (propojeny), ovlivnilo by to i bit čtvrtý, nezávisle na jeho skutečné hodnotě. Diody toto nežádoucí ovlivňování jednoduše odstraní.

Poznámka: některé PROM používají namísto diody tranzistor; opět se tedy jedná o bipolární technologii, na rozdíl od dále popsaných typů pamětí, které jsou typicky založeny na technologii unipolární.

S PROM se můžeme setkat například v již zmíněné historické řadě bipolárních obvodů 7400:

# Čip (označení) Stručný popis
1 74×188 256bitová PROM s organizací 32×8 bitů
2 74×287 1024bitová PROM s organizací 256×4 bity
3 74×288 256bitová PROM s organizací 32×8 bitů
4 74×387 1024bitová PROM s organizací 256×4 bity
5 74S450 8192bitová PROM s organizací 1024×8 bitů
6 74S451 8192bitová PROM s organizací 1024×8 bitů
7 74×470 2048bitová PROM s organizací 256×8 bitů
8 74×471 2048bitová PROM s organizací 256×8 bitů
9 74×472 4096bitová PROM s organizací 512×8 bitů
10 74×473 4096bitová PROM s organizací 512×8 bitů
11 74×474 4096bitová PROM s organizací 512×8 bitů
12 74×475 4096bitová PROM s organizací 512×8 bitů
13 74×476 4096bitová PROM s organizací 1024×4 bity
14 74×477 4096bitová PROM s organizací 1024×4 bity
15 74×478 8192bitová PROM s organizací 1024×8 bitů
16 74×479 8192bitová PROM s organizací 1024×8 bitů
17 74×570 2048bitová PROM s organizací 512×4 bity
18 74×571 2048bitová PROM s organizací 512×4 bity
19 74×572 4096bitová PROM s organizací 1024×4 bity
Poznámka: dnes se můžeme velmi často setkat s termínem OTP, což kromě „one-time pad“ a „one-time password“ znamená i „One-time programmable“
. Jedná se tedy o nevolatilní paměť, která po koupi obsahuje buď samé jedničky nebo nuly a obsah jednotlivých bitů lze změnit pouze jedenkrát. Mohlo by se tedy zdát, že moderní OTP jsou založeny na technologii PROM zhruba popsané výše. Ve skutečnosti tomu tak již není, protože OTP bývají založeny na dále popsané technologii EPROM, ovšem s tím, že u takových pamětí chybí okénko pro mazání.

4. Vznikající potřeba nevolatilních pamětí, které by bylo možné přeprogramovat

Elektricky programovatelné ROM trpí stejnou základní nevýhodou jako maskované ROM, tj. jednou zapsanou informaci již není možné později změnit; jedinou možnost představuje výměna paměťového čipu. Předností na druhou stranu je, že se nemusí vytvářet drahá maska, samotný přípravek pro programování je relativně levný, dostupný a tím pádem i použitelný pro přípravu malé série naprogramovaných pamětí. Ovšem společně se vznikem relativně levných mikroprocesorů a zejména mikrořadičů se ukázala potřeba mít možnost nějakým způsobem naprogramovat i zařízení vyráběná v malých sériích. A typicky u mikrořadičů by se hodilo mít možnost přepsat jednou zapsanou informaci do ROM novější verzí. A právě na základě těchto požadavků vznikly první typy mazatelných pamětí EPROM založené na struktuře FAMOS (MOS tranzistor s takzvaným plovoucím hradlem). Dalšími úpravami a vylepšeními vznikly paměti EEPROM založené na struktuře FLOTOX a od těchto typů pamětí je již relativně malý krok k mžikovým pamětem, kterým je věnována druhá polovina článku.

Obrázek 11: Mikrořadič 8751, který je vybaven pamětí EPROM (7 ve třetí číslici, ostatně typickou součástí EPROM je okénko umožňující mazání pomocí UV záření).

5. Mazatelné paměti (EPROM)

O mazatelných nevolatilních pamětech jsme se stručně zmínili už v předchozích kapitolách, ovšem musíme si je popsat podrobněji, protože právě u nich se začíná psát skutečná historie mžikových (flash) pamětí. Jedná se o paměti označované zkratkou EPROM neboli Erasable Programmable Read-Only Memory. Slovo Erasable značí, že jednou zapsanou informaci je možné určitým postupem vymazat a poté je možné provést opětovný zápis informace jiné. Mazání se však u těchto pamětí neprovádí elektrickým signálem, ale ultrafialovým zářením. Základem paměťové buňky je v tomto případě speciálně upravený unipolární tranzistor s přidanou izolovanou řídicí elektrodou, jejíž náboj určuje hodnotu zapsaného bitu. Vzhledem k tomu, že je řídicí elektroda izolovaná od svého okolí, udrží se v ní elektrický náboj po velmi dlouhou dobu, řádově desítky let (tato elektroda se nazývá plovoucí – floating).

Obrázek 12: Starší typ paměti EPROM s okénkem, pod kterým je vidět paměťová matice.

Poznámka: udává se i hodnota 100 let s tím, že 10 let bývá zaručeno a předpokládalo se, že právě deset let je zhruba doba morální životnosti elektronického zařízení (bavíme se zde o období před masivním nasazováním „k.....tek“). Ovšem například majitelé starších zařízení s EPROM (druhá generace PC, …) mohou dosvědčit, že informace v EPROM – pokud jsou jejich okénka dobře odstíněna od zdrojů UV záření, popř. tvrdšího záření – vydrží i tři desetiletí.

Obrázek 13: Bitová jednička a nula zapsaná v buňce paměti EPROM.

Vraťme se však k pamětem EPROM, resp. přesněji řečeno k principu jejich činnosti. Před prvním použitím paměťového čipu jsou všechny řídicí elektrody vybité, což znamená, že tranzistory jsou v nevodivém stavu (to většinou odpovídá logické jedničce, ovšem opět se můžeme setkat s invertory na výstupu). Zápis logické nuly se provádí větším elektrickým napětím přivedeným na tranzistor – řídicí elektroda je nabíjena lavinovou injekcí náboje (elektron bude více přitahován k elektrodě G, protože na ní je přivedeno například napětí 20V, což je více, než na elektrodě D – a mezi vodivým kanálem a G se nachází plovoucí elektroda). V případě, že elektron překoná nevodivou vrstvičku, která plovoucí elektrodu izoluje od substrátu, nemá již (bez přispění dalších vlivů) dostatečnou energii k tomu, aby přeskočil zpět – zapsaná informace je zapamatována a může být následně čtena tak, že se zjišťuje, zda je příslušný tranzistor ve vodivém či nevodivém stavu (elektrický náboj v izolované elektrodě mění otevření kanálu tranzistoru, resp. přesněji řečeno mezní napětí pro otevření).

Obrázek 14: Zápis nuly ovlivňuje mezní napětí otevření tranzistoru MOS.

Tímto způsobem je možné, pouze za použití vyššího programovacího napětí (cca 20V, ovšem dnes jen interně: externí napájení je již standardní) či nábojové pumpy zapsat do libovolného místa paměti EPROM bit s hodnotou nula. Zápis jedničky do jediné paměťové buňky není bez smazání celé paměti možný, paměť je tedy z hlediska programátora určena pouze pro čtení (existují ovšem některé aplikace, které této vlastnosti EPROM využívají, jedná se například o starší a dnes již prakticky zapomenuté typy telefonních karet, ze kterých se „odmazávají“ zaplacené impulsy zápisem logických nul). Celou paměť typu EPROM je možné (i opakovaně) smazat. Mazání spočívá v tom, že se ultrafialovým zářením zvýší energie elektronů „uzavřených“ v izolované elektrodě, takže elektrony mohou přeskočit přes izolační vrstvu elektrody a rozptýlit se do okolí. Všechny bity paměti tak získají logickou hodnotu 1. Mazání je možné několikrát opakovat, ovšem s tím, že se postupně vlastnosti čipu degradují (rozptýlení elektronů do substrátu) a doba potřebná pro smazání se prodlužuje, mnohdy na desítky minut.

Poznámka: ve skutečnosti je zápis i do nové paměti EPROM dosti pomalý, takže existovala snaha o urychlení celého procesu. Vznikly tak různé „chytré“ algoritmy, které se nejdříve snaží provést zápis (tj. vynulování bitu) rychleji, s následným přečtením hodnoty. Pokud k překlopení bitu došlo, pokračuje se v zápisu dalších bitů. Pokud nedošlo (stále se čte jednička namísto očekávané nuly), je doba zápisu zvětšena a zápis se provede znovu (ve skutečnosti se toto většinou neprovádí na úrovni bitů, ale bajtů, v závislosti na tom, jak široká je datová sběrnice daného konkrétního čipu EPROM).

6. Použití EPROM v praxi

Paměti EPROM se používaly a používají v mnoha různých zařízeních, a to především tam, kde se nepočítá s častou změnou zapsaných informací. V EPROM bývaly uloženy například české fonty v některých grafických kartách (které pro tento účel neměly RAM), tiskárnách, používaly se v malosériových cartridge s programovým vybavením (assemblery, monitory, editory). Jednu EPROM s FW mám v plynovém kotli (15 let) atd. Samozřejmě se s EPROM setkáme v již zmíněných mikrořadičích, a to počínaje čipem Intel 8048, který se nabízel v těchto variantách (každá určená pro jiné účely):

Označení EPROM [B] PROM [B] RAM [B]
8035HL 0 0 64
8039HL 0 0 128
8040AHL 0 0 256
8048H 0 1024 64
8748H 1024 0 64
8049H 0 2048 128
8749H 2048 0 128
8050AH 0 4096 256

Obrázek 15: Varianta mikrořadiče Intel 8048 – zde se jedná o čip s mazatelnou pamětí EPROM

Již v kapitole o PROM jsme se zmínili o OTP, tedy pamětech EPROM, které se „tváří“ jako PROM, například tím, že nemají okénko pro mazání. Typicky se jedná právě o EPROM, což lze někdy zjistit z kódového označení čipu. V minulosti, kdy byly EPROM drahé a nedostatkové, se však s větším či menším úspěchem mazaly i tyto OTP. Ovšem vzhledem k absenci okénka bylo nutné namísto UV použít záření jiné délky – u nás se například používaly vyřazené zubařské rentgeny (to by dnes s velkou pravděpodobností způsobilo skandál :-).

7. Elektricky mazatelné ROM (EEPROM)

Pokračovatelem pamětí typu EPROM jsou paměti označované jako EEPROM či někdy E2PROM. Jedná se o nevolatilní paměti založené na podobném principu jako EPROM (MOS tranzistor s izolovanou elektrodou), ovšem s tím rozdílem, že se mazání provádí elektricky, není tedy nutné používat ultrafialové záření a v mnoha případech ani vyjímat paměti z původní patice. EEPROM jsou mnohdy signálově zcela kompatibilní s původními paměťmi PROM či EPROM, tj. v mnoha zařízeních (včetně počítačů) bylo možné provést pouhou výměnu paměťového čipu bez nutnosti modifikovat zapojení či způsob přístupu mikroprocesoru k paměťovému subsystému – PROM, EPROMEEPROM používají shodný způsob adresování (většinou po bytech či širších slovech). Mazání EEPROM u starších typů vyžadovalo zdroj vyššího mazacího napětí, dnes se setkáme spíše s čipy, které obsahují takzvanou nábojovou pumpu, pomocí které si paměť sama požadované napětí vytvoří.

EEPROM jsou založeny na MOS tranzistorech se strukturou FLOTOX (viz například Fabrication of Floating Gate MOS (FLOTOX)). Samotné čipy jsou interně poněkud složitější, než původní FAMOS s jediným typem tranzistorů přidaným (plovoucím) hradlem. Je tomu tak z toho důvodu, že v EEPROM je nutné buňky jednotlivě mazat, k čemuž slouží druhý tranzistor (klasický MOS, bez plovoucího hradla), který připojuje buňku k vodiči s mazacím/programovacím napětím. A právě tato struktura jednoho bitu – běžný MOS + MOS s plovoucím hradlem – vede k tomu, že EEPROM sice umožňují programovat jednotlivé bity, ovšem hustota je relativně nízká (přesněji řečeno hustota měřená v počtu bitů uložitelných na jednotku plochy čipu).

Slavným průkopníkem použití EEPROM byly osmibitové mikrořadiče PIC 16C84 společnosti Microchip Technology uvedené na trh v roce 1993. Tehdy byl trh s mikrořadiči poměrně homogenní – vývoj vedla Motorola následovaná dalšími výrobci. Do této relativně uzavřené společnosti přišla firma Microchip Technology s mikrořadičem vybaveným elektronicky mazatelnou EEPROM. Tyto čipy bylo možné jednoduše a rychle přeprogramovat (sériovým protokolem), takže se začaly poměrně masivně používat pro různé hobby projekty. Ovšem čip PIC 16C84 se začal používat i v masivně vyráběných zařízeních. Dnes se namísto 16C84 setkáme s čipem 16F84 vybaveným mžikovou pamětí, ovšem z pohledu programátora se jedná o prakticky identický čip.

8. Máme EEPROM – kam dále?

Paměti EEPROM byly skutečnou cestou vpřed, protože umožnily návrh takových zařízení, která si potřebovala zapamatovat určité údaje i při výpadku napájení. Kromě toho byly EEPROM přímou náhradou starších PROM a EPROM – což bylo většinou podtrženo i zcela identickým umístěním signálů na pinech čipů. Ovšem ani EEPROM nebyly tou technologií, která na naše stoly (a do kapsy) přinesla přehrávače MP3, tablety a chytré mobilní telefony. Bylo to z toho důvodu, že EEPROM pro paměťovou buňku potřebovaly dva tranzistory, navíc odlišného typu, což komplikuje výrobní proces a zmenšuje hustotu uložení informací.

9. Zrod Flash pamětí

Tohoto omezení si byl vědom i Fujio Masuoka ze společnosti Toshiba. Kromě toho, ostatně jako každý z oboru integrovaných obvodů, znal Moorův zákon, takže mu bylo jasné, že kapacity elektronicky mazatelných pamětí postupně porostou a navíc bude docházet i k jejich zlevňování. Pokud by se tyto dva trendy spojily s možností mít elektronicky mazatelnou paměť s buňkou tvořenou jediným tranzistorem, mohly by tyto paměti nahradit například diskety (o pevných discích pravděpodobně Masuoka ještě neuvažoval). Mausokovu týmu se skutečně podařilo takovou paměť vytvořit – mohla být mazána po blocích, což vedlo k tomu, že díky „mžikovému“ mazání byly tyto paměti pojmenovány Flash memory. V roce 1984, tedy čtyři roky po začátku vývoje, byla nová paměť představena na IEEE International Electron Devices Meeting v San Franciscu. A právě tehdy se začala novou technologií zabývat i společnost Intel, která vydala 256kb čip v roce 1988 (technologie NOR). Toshiba mezitím vytvořila NAND Flash, která je základem dnešních SSD a dalších zařízení.

Dva roky poté, v roce 1990, se Flash staly součástí digitálních fotoaparátů – zrodil se zcela nový trh s přenosnými zařízeními nezávislými na pevných discích.

10. Mžikové paměti (Flash EEPROM)

Co jsou to tedy mžikové paměti? Jedná se o upravené elektricky mazatelné programovatelné paměti, jejichž morfologie je změněna takovým způsobem, aby se dosáhlo co nejvyšších hustot záznamu informací (každá paměťová buňka je představována jediným tranzistorem, v EEPROM to byly dva různé tranzistory), z čehož se odvíjí i velká kapacita čipu a jeho relativně nízká cena (ovšem i některé nevýhody). Mžikové paměti se od EEPROM liší především tím, že je zápis i mazání prováděn po blocích, přičemž mazání je velmi rychlé (mžikové, odtud je ostatně odvozen i název těchto pamětí). V následujících kapitolách si podrobněji popíšeme oba principiálně odlišné typy mžikových pamětí – NAND a NOR. Každý typ má poněkud odlišné vlastnosti a používá se v jiných typech zařízení (jen ve stručnosti: NAND nahrazuje spíše externí paměti typu pevný disk, NOR lze namísto toho použít místo PROM či EPROM).

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

Jeden z limitujících faktorů, které mohou v některých případech znemožnit či prodražit používání mžikových pamětí, je omezený počet zápisů do každé paměťové buňky, resp. do celého bloku, protože se mžikové paměti mažou, jak již víme, vždy po celých blocích. U většiny komerčně dostupných paměťových čipů se udává minimální garantovaný počet přepisů/vymazání každého bloku v řádu stovek tisíc. Na jednu stranu se jedná o velmi vysokou hodnotu, především v porovnání s přepisovatelnými kompaktními disky či DVD, ovšem v případech, ve kterých by měly mžikové paměti nahradit pevný disk, již může být tato hodnota kritická, hlavně při použití souborových systémů, které nedokáží rozložit zápisy tak, aby byl počet mazání každého paměťového bloku přibližně stejný. Například souborový systém FAT, velmi často používaný právě pro mžikové paměti, je z tohoto hlediska nevýhodný, protože prakticky jakákoli změna v souborovém systému znamená zápis do alokační tabulky umístěné na pevném místě v za sebou jdoucích blocích (což v současnosti už obchází řadič připojený k paměti).

11. Příklad Flash paměti první generace

Dnes, kdy i levné paměťové karty CompactFlash mají kapacity dosahující řádů gigabajtů, může být zajímavé se podívat na to, jaké charakteristiky vlastně měly mžikové paměti první generace. Poměrně dobrým příkladem může být čip 57F64 vyráběný společností Intel. Jednalo se o náhradu EPROM 27C64A, ovšem datové vývody byly obousměrné. Čip 57F64 měl kapacitu 64kb s organizací 8192×8 bitů. Mazání celé paměti (nikoli po blocích) trvalo okolo dvou sekund, opětovné naprogramování „chytrým“ algoritmem pak přibližně jednu sekundu. Přístup k zapsaným datům, tj. jejich čtení, bylo pochopitelně mnohem rychlejší – 150ns. Tato paměť podporovala dva režimy – EPROM (viz zmíněna náhrada za starší 27C64A, popř. 2764A) a on-board, kdy se chovala jako skutečně elektricky mazatelná paměť ROM. I z těchto charakteristik je zřejmé, že se tato paměť používala především jako rychle mazatelná EPROM bez nutnosti vyjmout paměť z čipu; zdaleka se ještě nejednalo o konkurenci klasickým pevným diskům (tato éra nastala později s masivním zlevňováním mžikových pamětí spojenou s jejich rostoucí kapacitou).

12. Způsob 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 obrázku pod odstavcem 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 jednotek, desítek či stovek kilobitů (podle použití paměti).

Obrázek 17: Zapojení paměťových buněk u mžikových pamětí typu NOR.

13. Způsob 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 patrné z následujícího obrázku, 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, a to nejenom díky tomu, že není zapotřebí tolik tranzistorů zajišťujících připojení k cestám z programovacím napětím, ale i kvůli větší uniformitě tranzistorů s plovoucím hradlem.

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ů předchozí generace (SLC) 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.

Poznámka: někdy se setkáme i se skupinami o velikosti 528 bajtů namísto 2112 bajtů.

Obrázek 18: Zapojení paměťových buněk u mžikových pamětí typu NAND.

14. Operace mazání, zápisu a čtení v mžikových pamětech

Zápis informací 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á u původních SLC přibližně 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 většinou nedá přímo použít jako náhrada za EPROM či EEPROM (týká se to především EEPROM s její schopností zápisu po bitech, resp. dnes spíše po bajtech).

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).

15. Zápis více bitů do jediné paměťové buňky

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 (a pochopitelně i ROM s maskou, PROM a EPROM). 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, rušení, úniku náboje…), na druhou stranu se však dosahuje větší informační hustoty, což se příznivě projevuje na ceně paměťových součástek.

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

16. Omezení technologie MLC

S vývojem a výrobou paměťových čipů s technologií MLC je – zejména v počátcích – spojena především firma Intel, která začala s vývojem již v roce 1992. První generace MLC byla oznámena o tři roky později (1995); jednalo se přitom o čip s kapacitou 32Mb vyráběný technologií 600nm. Produkovat první čipy komerční kvality s MLC se podařilo po roce 1997; kapacita byla 64Mb a výrobní technologie 400nm. Tehdejší MLC čipy byly založeny na uložení dvou bitů do jediné paměťové buňky. To tedy znamená, že bylo nutné rozlišit čtyři možné stavy (převáděné na bitové vzorky 00, 01, 10, 11), které byly reprezentovány odlišným počtem elektronů „uvězněných“ v plovoucím hradle (neboli rozdílným nábojem). Mohlo by se zdát, že počet stavů je možné zvyšovat prakticky libovolně, že vše záleží pouze na šumu v zesilovačích, A/D převodnících atd. Ovšem není tomu tak, protože zde narážíme na to, že náboj v plovoucím hradle je součtem elementárních nábojů – jednotlivých elektronů, které jsou zde zachyceny při zápisu; navíc dochází k samovolnému samovybíjení, které je sice o mnoho řádů menší, než u DRAM, ale existuje (navíc se zhoršuje v závislosti na počtu provedených cyklů mazání+zápis).

Rozdíl v počtu elektronů mezi dvěma sousedními stavy byl v MLC čipech z roku 1997 roven přibližně 3000 elektronům a počítalo se s tím, že každý den buňka ztratí jeden elektron, a to z různých příčin, typicky v kombinaci horší izolace s vnějším zářením. To ovšem znamená, že aby buňka samovolně přešla z jednoho stavu do druhého pouhým samovolným vybíjením, bude to trvat přibližně deset let, což zajišťuje dobu uložení informace srovnatelnou s původní technologií EPROM (prakticky však, jak již víme, drží EPROM informaci i po delší dobu, ovšem i tak je deset let pro typické použití mžikových NAND Flash většinou více než dostatečná doba).

Ovšem technologie Flash a taktéž samotné MLC se neustále vyvíjí. U MLC dochází ke zvyšování počtu bitů, které je možné uložit do jediné paměťové buňky a u Flash (jako celku) se postupně mění výrobní proces, který se přibližuje k pěti nanometrům. Co to znamená? U CPU jsou to převážně kladné vlastnosti, ale u Flash znamená menší plocha MOSFET tranzistorů i zmenšení samotného plovoucího hradla, které (pro danou míru izolace a povolená mazací a programovací napětí) dokáže uložit mnohem menší náboj a tím pádem i mnohem méně elektronů, než dříve. Tím pádem je rozdíl mezi jednotlivými stavy představován nikoli 3000 elektrony, jako tomu bylo v roce 1997, ale u 10nm technologie je kritický rozdíl pouze přibližně dvacet (!) elektronů a u budoucí 5nm technologie ještě méně. Už tedy není možné tolerovat ztrátu jednoho elektronu denně (samovolné vybíjení), ale kvalita uložení se musí zvyšovat – plánuje se, že budoucí paměti by měly ztratit jednotky elektronů ročně.

Obrázek 20: Klesající počet elektronů nutných pro rozlišení jednotlivých stavů spolu se zlepšující se technologií výroby.

Poznámka: i přes další vývoj této technologie je zapotřebí s výše popsaným principiálním omezením počítat; ostatně i elektroniky Flash disků mohou pomoci opakovaným přepisem informace po určité době. Na druhou stranu nepoužívání MLC Flash po dobu několika měsíců již může vést ke ztrátě informace.

17. 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 (pochopitelně) čá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  

Obrázek 21: Wafer, ze kterého se po základních testech vyřezávají základy mžikových pamětí

18. Hybridní pevné disky a další aplikace mžikových pamětí

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í (jako klasická cache vyrobená z DRAM). 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.

tip_Terraform

Poznámka: příkladem je disk s kapacitou 2TB doplněný o 128MB mžikové paměti.

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í.

19. Literatura

Poznámka: schválně v této kapitole uvádím zejména starší literaturu, protože dnešní článek je věnován spíše historii výpočetní techniky. U starší české literatury je poměrně typické, že popisuje čipy, které (tehdy) již byly na západě nahrazeny novějšími komponentami.
  1. Intel: Memory Component Handbook,
    Intel, 1986
  2. Pavel Valášek, Roman Loskot: Polovodičové paměti,
    BEN – Technická literatura, 1998
  3. Budínský J.: Polovodičové paměti – Názvosloví a definice,
    TESLA VÚST, Praha 1980
  4. Karel Krištoufek: Kurs číslicových počítačů a mikropočítačů,
    SNTL, 1990
  5. Janů K.: Paměti a řadiče – část I.,
    ČSVTS, Knižnice mikroprocesorová technika, Praha 1982
  6. Texas Instruments: The Bipolar Microcomputer Components Data Book
    TI, 1977
  7. Brief History of CS

20. Odkazy na Internetu

  1. Flash memory
    https://www.britannica.com/techno­logy/flash-memory
  2. Solid State Drive (Wikipedia)
    http://en.wikipedia.org/wiki/Solid-state_drive
  3. SSD Write Limit
    http://wiki.eeeuser.com/ssd_wri­te_limit
  4. Flash vs. hard drives: The battle intensifies
    http://www.solid-state.com/articles/article_dis­play.html?id=272293
  5. Hybrid Drive
    http://en.wikipedia.org/wi­ki/Hybrid_drive
  6. Magnetic Disk Heritage
    http://www.magneticdiskhe­ritagecenter.org/
  7. Timeline: 50 Years of Hard Drives
    http://www.pcworld.com/ar­ticle/127105/timeline50_y­ears_of_hard_drives.html
  8. What is the importance of Microchip's PIC microcontroller series in today's world?
    https://www.quora.com/What-is-the-importance-of-Microchips-PIC-microcontroller-series-in-todays-world
  9. Why are the PIC “F” models popular?
    https://electronics.stackex­change.com/questions/46879/why-are-the-pic-f-models-popular
  10. Read-only memory
    https://en.wikipedia.org/wiki/Read-only_memory
  11. OTP EPROM
    https://www.microchip.com/design-centers/memory/otp-eprom
  12. Datasheet paměti 57F64
    https://www.datasheetarchi­ve.com/pdf/download.php?id=087d619e4d94c716­8ffb4bea727da1820095d4&ty­pe=O&term=57f64
  13. HN613128P Datasheet
    https://www.datasheet4u.com/datasheet-pdf/Hitachi/HN613128P/pdf­.php?id=755224
  14. ZX Spectrum 48K – How to replace the ROM with an EPROM
    https://www.youtube.com/wat­ch?v=rJmJBWWoRpE
  15. Seznam logických integrovaných obvodů řady 7400
    https://cs.wikipedia.org/wi­ki/Seznam_logick%C3%BDch_in­tegrovan%C3%BDch_obvod%C5%AF_%C5%99a­dy_7400
  16. List of 7400-series integrated circuits
    https://en.wikipedia.org/wi­ki/List_of_7400-series_integrated_circuits
  17. 1977 TI Bipolar Microcomputer Components Data Book
    https://archive.org/stream/bit­savers_tidataBookcomputer­ComponentsDataBook_16851665/1977_TI_Bi­polar_Microcomputer_Compo­nents_Data_Book#page/n181/mo­de/2up
  18. What is 3D NAND? Why do we need it? How do they make it?
    https://thememoryguy.com/what-is-3d-nand-why-do-we-need-it-how-do-they-make-it/
  19. ZX81
    https://en.wikipedia.org/wiki/ZX81
  20. Schottky diode
    https://en.wikipedia.org/wi­ki/Schottky_diode
  21. ZX Spectrum PCB Images
    https://k1.spdns.de/Vinta­ge/Sinclair/82/Sinclair%20ZX%20Spec­trum/PCB%20Images%20(ortho­gonal)/
  22. Floating-gate MOSFET
    https://en.wikipedia.org/wiki/Floating-gate_MOSFET
  23. Hot-carrier injection
    https://en.wikipedia.org/wiki/Hot-carrier_injection
  24. Chip Hall of Fame: Microchip Technology PIC 16C84 Microcontroller
    https://spectrum.ieee.org/tech-history/silicon-revolution/chip-hall-of-fame-microchip-technology-pic-16c84-microcontroller
  25. Fabrication of Floating Gate MOS (FLOTOX)
    https://www.slideshare.net/shud­hanshu29/fabrication-of-floating-gate-mos-flotox