Paměti Flash K.D. - přednášky 1 Základní charakteristiky (Flash EEPROM): Přepis dat bez mazání: ne. Mazání: po blocích nebo celý čip. Zápis: po slovech nebo po blocích. Typická životnost: 100 000 1 000 000 mazání. Paměti EEPROM: Přepis dat bez mazání: ano. Mazání: po slovech, po blocích nebo celý čip. Zápis: po slovech nebo po blocích. Typická životnost: 100 000 mazání/přepisů. K.D. - přednášky 2
Klasifikace Flash podle použití a způsobu komunikace: Flash pro uložení kódu (programu) a dat (NOR). Protokol JEDEC. Protokol 28F008. Sériové rozhraní (SPI) viz sériové EEPROM. AND Flash a NAND Flash. Sekvenční přístup. K.D. - přednášky 3 NOR a NAND Flash NAND a NOR používají jiný typ paměťových buněk K.D. - přednášky 4
NOR a NAND Flash Propojení jednotlivých tranzistorů K.D. - přednášky 5 NOR a NAND Flash NAND lépe využívá plochu čipu K.D. - přednášky 6
NOR Flash paměti s protokolem JEDEC Organizace 8 nebo 8/16 bitů. D15(A-1) D15 pro 16, A-1 pro 8. RY/BY Ready/Busy /BYTE 8 nebo 16 A0 A19 CE OE WE D0 D7 RY/BY A0 A16 CE OE WE D0 D14 D15(A-1) RY/BY RESET Flash 8 Mb 1 M x 8 (Am29LV008B) RESET BYTE Flash 2 Mb 256 k x 8, 128 k x 16 (Am29F200B) K.D. - přednášky 7 Organizace pamětí Flash Bulk a Uniform Sector Podle možnosti mazání 3 typy: 1. Bulk. 2. Uniform Sector. 3. Boot Sector. Data Block n Data Block Data Block 0 Data Block 2 00000 00000 Data Block 1 Bulk Uniform Block K.D. - přednášky 8
Organizace pamětí Flash Boot Sector Podle možnosti mazání 3 typy: 1. Bulk. 2. Uniform Sector. 3. Boot Sector. FFFFF Data Block 14 64 k FFFFF Boot Block 16 k Parameter Block Parameter Block 8 k 8 k Data Block 1 Boot Block 64 k 32 k Boot Block Data Block 1 32 k 64 k Parameter Block Parameter Block 8 k 8 k 00000 Boot Block 16 k 00000 Data Block 14 64 k Boot Block Bottom Boot Block Top K.D. - přednášky 9 Řízení pamětí Flash (JEDEC) Před zápisem povelu je nutné paměť odemknout zápisem definovaných dat na definované adresy. K.D. - přednášky 10
Stavový registr (JEDEC) Při probíhající operaci (zápis, mazání) se operací čtení čte místo dat stavový registr. D7 obsahuje negaci zapsaného DQ7. D6 mění se při každém dalším čtení. D5 indikace chyby (interní timeout). D7 D6 D5 D4 D3 D2 D1 D0 Toggle Bit (Suspend) Sector Erase Timer Exceeded Timing Limit Toggle Bit Data D7 K.D. - přednášky 11 Testování ukončení zápisu: Zápis dat do Flash (JEDEC) Signálem RY/BY. Čtením stavového registru. Adr Data CE 555 AA 2AA 55 555 A0 PA PD PA status (busy) PA status (busy) PA PD WE OE RY/BY Odemknutí Zápis dat Čtení stavu Čtení dat t WHWH K.D. - přednášky 12
Použití stavového registru (1) Čtení a testování D7 ve stavovém registru. Použití při zápisu dat: D7 = /DQ7 BUSY. D7 = DQ7 READY. Použití při mazání: D7 = 0 BUSY. D7 = 1 READY. K.D. - přednášky 13 Použití stavového registru (2) Čtení a testování D6 ve stavovém registru. Použití při zápisu dat a mazání: D6 se mění BUSY. D6 se nemění READY. K.D. - přednášky 14
Mazání několika sektorů současně Po zadání povelu Erase Sector se mazání spustí za cca 50 µs (podle typu Flash). Do té doby lze zadat další povely mazání všech sektorů se provede současně. Trvání okna pro další povely je indikováno v bitu D3 stavového registru. K.D. - přednášky 15 Operace Erase Suspend Po povelu Erase Suspend (B0h) probíhá mazání na pozadí lze číst jiný sektor nebo zapisovat do jiného sektoru. Ukončení: Erase Resume. Erase Sector Erase Suspend Čtení nebo zápis Erase Resume Data CE AA 55 80 AA 55 30 B0 30 K.D. - přednášky 16
Ochrana proti zápisu Jednotlivé sektory lze zamknout proti zápisu je nutné použít programátor. (A9 = V ID, /OE = V ID (= 12 V) ). Podobně pro trvalé odemknutí sektorů. Dočasně lze sektor odemknout pro zápis nebo mazání připojením V ID na pin /RESET. Paměti s Boot Block mají někdy ochranu Boot Block pinem /WP pro povolení zápisu musí být na úrovni H. K.D. - přednášky 17 Flash paměti s protokolem 28F008 /WP chrání Boot Block proti přepsání. Pro mazání/přepsání Boot Block musí být /WP = H nebo /RP = 12 V. A0 A22 CE OE WE D0 D15 WP /WP /RP /BYTE Write Protect Reset/Power Down 8/16 bitů RP BYTE Flash 128 Mb 16 M x 8, 8 M x 16 (M5M29KE131BVP) K.D. - přednášky 18
Řízení pamětí Flash ( 28F008 ) Jiné kódy některých povelů proti JEDEC. Nepoužívá se odemykací sekvence před zápisem povelu. Identifikace vlastností Flash pomocí CFI (Common Flash Interface) čte se povelem Read CFI Querry (98h). Po resetu je Flash v režimu Read Memory Array lze ji přímo bez dalších povelů číst. K.D. - přednášky 19 Detaily řízení pamětí Flash ( 28F008 ) K.D. - přednášky 20
Synchronní režim (1) Některé Flash (např. Amd Am29BL162C) umožňují čtení v synchronním režimu (max. 32 slov). Doba cyklu při synchronním přenosu >18 ns. /LBA = Load Block Address /BAA = Block Address Advance /IND = indikace konce bloku A0 A19 CE OE WE RESET LBA BAA CLK D0 D15 RY/BY IND Flash 16 Mb 1 M x 16 (Am29BL162C) K.D. - přednášky 21 Synchronní režim (2) 25 ns CLK LBA BAA D0-D15 RD0 RD1 RD2 RD3 RDn 65 ns 18 ns A0-A19 Addr. K.D. - přednášky 22
Stránkový zápis Některé paměti dovolují stránkový zápis zapisuje se např. 256 bytů najednou. OE WE An - A7 A6 - A0 5555 2AAA 5555 Page Page Page Page 0-7F 0-7F 0-7F D7 - D0 AA 55 A0 Data Data Data Status < 150 us > 150 us Stránkový zápis - Flash Atmel AT29C010A K.D. - přednášky 23 Stránkový zápis Některé paměti dovolují stránkový zápis zapisuje se např. 256 bytů najednou. OE WE An - A8 A7 - A0 Blok Addr Addr Addr Addr Blok Blok 00h 01h 02h FFh D7 - D0 41 Data Data Data Data Busy Ready > 4 ms Stránkový zápis Flash Renesas M5M29KE131BVP K.D. - přednášky 24
CFI (Common Flash Interface) Blok parametrů s popisem konfigurace dané Flash. Přepnutí Flash do režimu Query mode : Zápis dat 0x98 na adresu 0x55. Ověření Query mode. Potom lze číst CFI data. Přepnutí do normálního režimu: Zápis dat 0xFF nebo 0xF0 na libovolnou adresu. K.D. - přednášky 25 Organizace CFI dat Obsahuje 3 + 2 bloky. Identification String: Identifikace sady příkazů. Device System Interface: Napětí a timeouty. Flash Geometry: Velikost Flash a rozdělení na bloky. Extended Query: Parametry programování, závislé na výrobci. 0x10 Ox19 0x1B 0x26 0x27 0x.. 0xPP 0xAA Identification string Device-system interface Flash geometry Primary extended query Alternative extended query K.D. - přednášky 26
CFI Identification String Obsahuje identifikační řetězec QRY a identifikaci algoritmů podle výrobce. K.D. - přednášky 27 CFI System Interface Obsahuje specifikace napájecích a programovacích napětí a timeouty pro programování a mazání.. K.D. - přednášky 28
CFI Flash Geometry Specifikace kapacity Flash a rozdělení na sektory. K.D. - přednášky 29 Některé parametry Flash (NOR) Kapacita max. 512 Mbitů ( 8, 16). Přístupová doba > 70 ns. Mazání > 300 ms. Zápis > 6 µs. K.D. - přednášky 30
AND/NAND Flash Rozhraní AND/NAND Flash IO0 - IO7 (IO15) Vstup/výstup dat/adresy /RE Read Enable /WE Write Enable CLE Command Load Enable ALE Address Load Enable PRE Power on Auto Read Enable /DSE Deep Sleep Enable CE RE WE CLE ALE WP PRE DSE MRES IO0 IO7 R/B Flash 128 Mb 16 M x 8 (HN29V128) K.D. - přednášky 31 Architektura Stránka (Page) = 2048 + 64 bytů (4 sektory). Blok = 64 stránek (typicky). Při kapacitě 4 Gb 4 k bloků. AND nemá dělení na bloky. Paměťová matice se čte/zapisuje po stránkách. Mazání: AND po stránkách. NAND po blocích. Řádek Sloupec Block Page = 2048 + 64 bytů ECC K.D. - přednášky 32
Základní operace Příkazy, adresa a data se zapisují několika cykly na 8bitovém nebo 16bitovém IO rozhraní. K.D. - přednášky 33 Příklad: čtení dat t R 25 µs (!) t RC 30 ns K.D. - přednášky 34
Příklad: čtení s náhodným přístupem ke sloupcům Po přečtení stránky do datového registru lze přistupovat ke sloupcům (tj. bytům/slovům) v libovolném pořadí. K.D. - přednášky 35 Kontrola ECC NAND a AND někdy používají 4 úrovňovou logiku (2 bity v 1 buňce). Při velké hustotě větší náchylnost k chybám. + 64 bitů ve stránce je využito pro ECC. Část kapacity vyhrazena pro náhradní stránky. K.D. - přednášky 36
Příklad: zápis s využitím cache Data se mohou zapisovat přímo do datového registru nebo do cache. Při zápisu do cache se může současně zapisovat datový registr do paměťové matice. Paměťová matice Data register Page cache K.D. - přednášky 37 Typické parametry AND/NAND Flash Kapacita 8 Gbitů Mazání bloku (NAND) 3 ms. Zápis stránky 300 µs. Čtení stránky do datového registru 25 µs. Čtení z datového registru 30 ns. Napájecí napětí 1.8 V, 3.3 V. Klidový odběr 20 µa. Pracovní odběr 30 ma. K.D. - přednášky 38