A case for biased programming in flash

Eitan Yaakobi, Gala Yadgar, Nachum Bundak, Lior Gilon

Research output: Contribution to conferencePaperpeer-review

Abstract

The voltage level of flash cells is directly correlated with the wear they experience. Previous studies showed that increasing the ratio of ones to zeroes within a flash page can reduce the amount of bit errors in this page as well as the long-term wear of its cells. Biased programming ensures more ones are programmed than zeroes by employing specialized codes which, in turn, incur non-negligible storage overhead. We propose a novel approach to utilize the page spare area for biased programming, introducing a new tradeoff: while using the spare area for a stronger ECC can correct more errors, biased programming can reduce the number of those errors. We show that as long as the bit error rate is below a pre-determined threshold, biased programming can be applied without compromising the data's durability. When the threshold is reached, we revert to normal programming, but we can use the chip for as much as 24% additional writes, thanks to its reduced wear. We demonstrate the applicability of our approach on real MLC chips. We also perform an initial evaluation on a TLC chip, which exposes the challenges in applying any type of biased programming to TLC flash.

Original languageEnglish
StatePublished - 2018
Event10th USENIX Workshop on Hot Topics in Storage and File Systems, HotStorage 2018, co-located with USENIX ATC 2018 - Boston, United States
Duration: 9 Jul 201810 Jul 2018

Conference

Conference10th USENIX Workshop on Hot Topics in Storage and File Systems, HotStorage 2018, co-located with USENIX ATC 2018
Country/TerritoryUnited States
CityBoston
Period9/07/1810/07/18

ASJC Scopus subject areas

  • Hardware and Architecture
  • Information Systems
  • Software
  • Computer Networks and Communications

Fingerprint

Dive into the research topics of 'A case for biased programming in flash'. Together they form a unique fingerprint.

Cite this