Why care? HDD SSD Require seek, rotate, No seeks SSDs transfer on each I/O Parallel Not parallel (one head) No moving parts Brittle (moving parts) Random reads take 10s Slow (mechanical) of µs Poor random I/O (10s Wears out! of ms) The Cell Flash Storage Single-level cells No moving parts faster, more lasting (50K to 100K program/ erase better random access performance cycles*), more stable less power 0 means charge; 1 means no charge more resistant to physical damage + Bit stored here, Oxide Multi-level cells surrounded by an insulator sidewall Oxide/Nitride/Oxide ONO inter-poly No charge = 1 To write 0 Control gate can store 2, 3, even 4 bits dielectric (insulator) Charge = 0 apply positive voltage to drain apply even stronger positive voltage to control gate cheaper to manufacture Floating gate some electrons are tunneled into Oxide Fowler-Nordheim tunneling floating gate tunnel wear out faster (1k to 10K program/ erase cycles) + N N source drain P-Type substrate more fragile (stored value can be disturbed by accesses to nearby cells)
Flash Storage Flash Storage No moving parts No moving parts better random access performance better random access performance less power less power more resistant to physical damage more resistant to physical damage - Bit stored here, Bit stored here, Oxide + Oxide surrounded by an insulator surrounded by an insulator sidewall sidewall Oxide/Nitride/Oxide Oxide/Nitride/Oxide ONO inter-poly No charge = 1 ONO inter-poly No charge = 1 To write 0 To write 0 Control gate Control gate dielectric (insulator) Charge = 0 dielectric (insulator) Charge = 0 apply positive voltage to drain apply positive voltage to drain apply even stronger positive apply even stronger positive voltage to control gate voltage to control gate To read Floating gate Floating gate some electrons are tunneled into some electrons are tunneled into apply positive (lower than write) Oxide Oxide floating gate Fowler-Nordheim tunneling floating gate Fowler-Nordheim tunneling tunnel tunnel voltage to control gate apply positive (lower than write) + + N N N N voltage to drain source drain source drain measure current between source To write 1 To write 1 P-Type substrate P-Type substrate and drain to determine whether apply positive voltage to drain apply positive voltage to drain electrons in gate apply negative voltage to control apply negative voltage to control measured current can encode gate gate more than a single bit electrons are forced out of electrons are forced out of floating gate into source floating gate into source The SSD Basic Flash Operations Storage Hierarchy Read (a page) 10s of µs, independent of the previously read page Erase (a block) sets the entire block (with all its pages) to 1 very coarse way to write 1s… 1.5 to 2 ms (on a fast SLC) Program (a page) can change some of the bit in a page of an erased block to 0 Page Cell Flash Chip Plane/Bank Block 100s of µs Several banks that Many blocks 64 to 256 1 to 4 2 to 8 KB changing a 0 bit back to 1 requires erasing the entire can be accessed (Several Ks) pages bits block! in parallel
Banks Banks Each bank contains many blocks Bank 0 Bank 1 Bank 2 Bank 3 Bank 0 Bank 2 Bank 3 Block Block Program Program 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 one page 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 After an Erase, all cells are discharged (i.e., store 1s)
Block Block Program Erase (!) 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Program If now we want to set this bit to 1, Modified pages must be we need to erase the entire block! copied elsewhere, or lost! Block APIs Performance Erase HDD Flash HDD Flash 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Throughput 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 read ≈ 130MB/s ≈ 200MB/s read sector read page (sequential) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 program page read 25µs 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (0’ s) program Latency write ≈ 10ms write sector 200-300µs Wear Out erase block erase (1’ s) 1.5-2 ms Every erase/program cycle adds some charge to a block; over time, hard to distinguish 1 from 0!
Recommend
More recommend