TW201528692A - 在使用每記憶體胞非整數個位元之類比記憶體胞中資料儲存之管理 - Google Patents

在使用每記憶體胞非整數個位元之類比記憶體胞中資料儲存之管理 Download PDF

Info

Publication number
TW201528692A
TW201528692A TW103135092A TW103135092A TW201528692A TW 201528692 A TW201528692 A TW 201528692A TW 103135092 A TW103135092 A TW 103135092A TW 103135092 A TW103135092 A TW 103135092A TW 201528692 A TW201528692 A TW 201528692A
Authority
TW
Taiwan
Prior art keywords
data
read
memory cells
decoding
encoded data
Prior art date
Application number
TW103135092A
Other languages
English (en)
Other versions
TWI516035B (zh
Inventor
Micha Anholt
Naftali Sommer
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of TW201528692A publication Critical patent/TW201528692A/zh
Application granted granted Critical
Publication of TWI516035B publication Critical patent/TWI516035B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

一種用於資料儲存之方法包括將資料儲存於記憶體胞之一群組中,其係藉由使用至少一外碼及一內碼對該資料進行編碼,且視情況在將該經編碼資料儲存於該等記憶體胞中之前反轉該經編碼資料。自該等記憶體胞讀取該經編碼資料,且將內碼解碼應用於該所讀取經編碼資料以產生一解碼結果。取決於該內碼之該解碼結果而有條件地反轉該所讀取資料之至少部分。

Description

在使用每記憶體胞非整數個位元之類比記憶體胞中資料儲存之管理
本發明大體上係關於資料儲存,且特定言之,係關於用於將資料儲存於類比記憶體胞中之方法及系統。
諸如快閃記憶體之若干類型之記憶體器件使用類比記憶體胞之陣列用於儲存資料。每一類比記憶體胞儲存一定量的亦稱為儲存值之類比值,諸如電荷或電壓。此類比值表示儲存在該記憶體胞中之資訊。舉例而言,在快閃記憶體中,每一類比記憶體胞保持某一量之電荷。可能類比值之範圍通常劃分成區間,每一區間對應於一或多個資料位元值。藉由寫入對應於所要位元之標稱類比值而將資料寫入至類比記憶體胞。
通常稱為單位階記憶體胞(SLC)器件之一些記憶體器件在每一記憶體胞中儲存單一位元之資訊,亦即,每一記憶體胞可經程式化以採用兩個可能的程式化位準。通常稱為多位階記憶體胞(MLC)器件之較高密度器件每記憶體胞儲存兩個或兩個以上位元,亦即,可經程式化以採用兩個以上可能程式化位準。作為一實例,三位階記憶體胞(TLC)器件使用八個程式化位準儲存每記憶體胞三個位元。
快閃記憶體器件例如由Bez等人描述於「Introduction to Flash Memory」(Proceedings of the IEEE,第91卷,第4期,2003年4月,第489-502頁)中,其以引用之方式併入本文中。多位階快閃記憶體胞及器件例如由Eitan等人描述於「Multilevel Flash Cells and their Trade-Offs」(Proceedings of the 1996 IEEE International Electron Devices Meeting(IEDM),紐約州,紐約市,第169-172頁)中,其以引用之方式併入本文中。該論文比較了若干類型之多位階快閃記憶體胞,諸如共同接地、DINOR、AND、NOR及NAND記憶體胞。
Eitan等人在「Can NROM,a 2-bit,Trapping Storage NVM Cell,Give a Real Challenge to Floating Gate Cells?」(Proceedings of the 1999 International Conference on Solid State Devices and Materials(SSDM),日本東京,1999年9月21-24日,第522-524頁)中描述了稱為氮化物唯讀記憶體(NROM)之另一類型之類比記憶體胞,該文以引用之方式併入本文中。NROM記憶體胞亦由Maayan等人描述於「A 512Mb NROM Flash Data Storage Memory with 8MB/s Data Rate」(Proceedings of the 2002 IEEE International Solid-State Circuits Conference(ISSCC 2002),San Francisco,California,2002年2月3-7日,第100-101頁)中,該文以引用之方式併入本文中。其他例示性類型之類比記憶體胞為浮動閘極(FG)記憶體胞、鐵電RAM(FRAM)記憶體胞、磁性RAM(MRAM)記憶體胞、電荷捕獲快閃記憶體(CTF)及相變RAM(PRAM,亦稱為相變記憶體-PCM)記憶體胞。FRAM、MRAM及PRAM記憶體胞例如由Kim及Koh描述於「Future Memory Technology including Emerging New Memories」(Proceedings of the 24th International Conference on Microelectronics(MIEL),Nis,Serbia and Montenegro,2004年5月16-19日,第1卷,第377-384頁)中,該文以引用之方式併入本文中。
一些儲存方案以具有每記憶體胞非整數數目個位元之密度儲存 資料。舉例而言,其揭示內容以引用之方式併入本文中的美國專利7,071,849描述分率位元系統,其允許將每記憶體胞之狀態數目在各代產品之間遞增少至1。由於每記憶體胞之狀態數目不為二之整數次冪,因此每記憶體胞之位元數目採用分率值。記憶體胞通常以字組為單位進行解碼,且可藉由調整字組寬度而使系統效率最佳化。
作為另一實例,其揭示內容以引用之方式併入本文中的美國專利6,646,913描述用於在具有由複數個記憶體胞形成之記憶體陣列的多位階非揮發性記憶體中儲存及讀取資料之方法。該等記憶體胞中的每一者儲存不為二之整數次冪的數目個位元。以此方式,一個資料位元組儲存於非整數數目個記憶體胞中。管理方法包括藉由對預設數目個鄰近記憶體胞進行程式化而在相同時脈週期中儲存由複數個位元組形成之資料字組。藉由在相同時脈週期中讀取所儲存之資料字組而執行讀取。
其揭示內容以引用之方式併入本文中的美國專利7,167,109中所述之方法允許使每記憶體胞狀態數目N在各代產品之間遞增少至1。因為N不再為二之整數次冪,因此b採用分率值,從而導致分率位元系統。在分率位元系統中,記憶體胞以字組為單位進行解碼。藉由調整字組寬度,可使系統效率最佳化。可使用混合N-分率系統(N-ary system)來改良製造良率及耐久性壽命。
其揭示內容以引用之方式併入本文中的美國專利7,742,335描述用於操作非揮發性多位階記憶體胞之方法、器件、模組及系統。一個方法實施例包括將第一記憶體胞可程式化至之第一數目個程式狀態指派給耦接至列選擇線之第一記憶體胞。該方法進一步包含將第二記憶體胞可程式化至之第二數目個程式狀態指派該耦接至列選擇線之第二記憶體胞,其中程式狀態之該第二數目大於程式狀態之該第一數目。該方法包括將該第一記憶體胞程式化至該第一數目個程式狀態中之一 者,隨後將該第二記憶體胞程式化至該第二數目個程式狀態中之一者。
其揭示內容以引用之方式併入本文中的美國專利7,848,142描述用於程式化可包括儲存電荷之記憶體胞的方法、器件、模組及系統,該等儲存電荷對應於表示一組記憶體胞中的整數數目個位元之資料狀態。對記憶體胞進行程式化可包括將電荷儲存於該組之記憶體胞中,其中該電荷對應於程式化狀態,其中該程式化狀態表示分率數目個位元,且其中該程式化狀態將資料狀態之數字表示為由以N為底的數目來表達,其中N等於2B,向上捨入為整數,且其中B等於由該程式化狀態表示之位元之分率數目。
其揭示內容以引用之方式併入本文中的美國專利7,420,841描述記憶體器件及操作記憶體器件之方法。在本發明之一個實施例中,記憶體器件包括各自具有與2n(其中n為非零整數)不匹配的數目m個位階之複數個多位階記憶體胞,及用於將用於寫入及讀取操作的該等記憶體胞中之至少兩者的位階組合為一組組合狀態且用於將該組組合狀態中之2n個組合之至少一子組變換為n個兩位階資料位元之電路或器件。
本文所述的本發明之實施例提供一種用於資料儲存之方法,其包含將資料儲存於記憶體胞之一群組中,其係藉由使用至少一外碼及一內碼對該資料進行編碼,且視情況在將該經編碼資料儲存於該等記憶體胞中之前反轉該經編碼資料。自該等記憶體胞讀取該經編碼資料。將內碼解碼應用於該所讀取經編碼資料以產生一解碼結果。取決於該內碼之該解碼結果而有條件地反轉該所讀取資料之至少部分。
在一些實施例中,該內碼包括其中一有效碼字之反轉並不始終導致另一有效碼字之一碼,且應用該內碼解碼包括對該所讀取經編碼 資料及該所讀取經編碼資料之一經反轉版本中之至少一者進行解碼。在其他實施例中,應用該內碼解碼包括對該所讀取經編碼資料及該所讀取經編碼資料之該經反轉版本兩者進行解碼,且有條件地反轉該所讀取資料之該至少部分包括僅當該經反轉版本之該解碼結果無錯誤且該所讀取經編碼資料之該解碼結果有錯誤時才反轉該所讀取資料之該至少部分。
在又其他實施例中,儲存該資料包括與該資料相關地儲存該所儲存資料是否已反轉之一反轉指示,讀取該經編碼資料包括對該反轉指示進行讀取及解碼,且應用該內碼解碼包括取決於該反轉指示而僅對該所讀取經編碼資料或僅對該所讀取經編碼資料之該經反轉版本進行解碼。
在一實施例中,有條件地反轉該所讀取資料之該至少部分包括:當該所讀取經編碼資料之該解碼結果與該反轉指示矛盾時,指示不能夠決定是否反轉該所讀取資料。在另一實施例中,該內碼包括一錯誤偵測碼,且有條件地反轉該所讀取資料之該至少部分包括當該解碼結果等於將該內碼解碼應用於一全1字組之一結果時反轉該所讀取資料之該至少部分,且當該解碼結果無錯誤時不反轉該所讀取資料之該至少部分。
在又一實施例中,有條件地反轉該所讀取資料之該至少部分包括:當該所讀取經編碼資料之該解碼結果與該所讀取經編碼資料之該經反轉版本之該解碼結果矛盾時,指示不能夠決定是否反轉該所讀取資料。
根據本發明之實施例,額外提供裝置,其包括:一記憶體,其包括記憶體胞之一陣列;及儲存電路。該儲存電路經組態以:將資料儲存於記憶體胞之一群組中,其係藉由使用至少一外碼及一內碼對該資料進行編碼,且視情況在將該經編碼資料儲存於該等記憶體胞中之 前反轉該經編碼資料;自該等記憶體胞讀取該經編碼資料;將內碼解碼應用於該所讀取經編碼資料以產生一解碼結果;以及取決於該內碼之該解碼結果而有條件地反轉該所讀取資料之至少部分。
根據本發明之實施例,額外提供一種用於資料儲存之方法,其包括:在一第一程式化階段中,藉由將記憶體胞之一群組中的該等記憶體胞程式化至一組初始程式化位準而將第一資料儲存於該群組中。在該第一程式化階段之後的一第二程式化階段中,藉由識別該群組中之在該第一程式化階段中經程式化至該等初始程式化位準之一預定義部分子組中之各別位準的記憶體胞而將第二資料儲存於該群組中。僅該等所識別之記憶體胞程式化有該第二資料,以便將該等所識別記憶體胞中之至少一些設定至不同於該等初始程式化位準之一或多個額外程式化位準。藉由僅讀取該第一資料之一部分子組而辨識該第二資料被程式化至之該等記憶體胞。自該等所辨識之記憶體胞讀取該第二資料。
在一些實施例中,儲存該第一資料包括儲存多個資料頁,且辨識該等記憶體胞包括僅讀取該多個頁之一部分子組。在其他實施例中,儲存該第一資料包括儲存一最低有效位元(LSB)頁及一中央有效位元(CSB)頁,且儲存該第二資料包括儲存一最高有效位元(MSB)頁,且辨識該等記憶體胞包括僅讀取該LSB頁或該CSB頁。在又其他實施例中,讀取該LSB頁或該CSB頁包括使用一單一讀取命令讀取該LSB頁或該CSB頁。在又其他實施例中,讀取該第二資料包括使用兩個讀取臨限值自該等所辨識記憶體胞讀取該MSB頁。
根據本發明之實施例,額外提供用於資料儲存之裝置,其包括:一記憶體,其包括記憶體胞之一陣列;及儲存電路。該儲存電路經組態以:在一第一程式化階段中藉由將記憶體胞之一群組中的該等記憶體胞程式化至一組初始程式化位準而將第一資料儲存於該群組 中;及在該第一程式化階段之後的一第二程式化階段中,藉由識別該群組中之在該第一程式化階段中經程式化至該等初始程式化位準之一預定義部分子組中之各別位準的記憶體胞而將第二資料儲存於該群組中;及僅以該第二資料程式化該等所識別之記憶體胞,以便將該等所識別記憶體胞中之至少一些設定至不同於該等初始程式化位準之一或多個額外程式化位準;藉由僅讀取該第一資料之一部分子組而辨識該第二資料被程式化至之該等記憶體胞;及自該等所辨識之記憶體胞讀取該第二資料。
根據本發明之實施例,額外提供一種用於資料儲存之方法,其包括:在記憶體胞之一群組中,識別該群組中之待程式化至一給定程式化狀態之記憶體胞之一預期數目。取決於待程式化至該給定程式化狀態之該等記憶體胞之該預期數目而設定該給定程式化狀態與一相鄰程式化狀態之間的一分離。使用該所設定之分離程式化該群組中之該等記憶體胞。
在一些實施例中,藉由根據一預定義分裂比率分裂該給定程式化狀態而產生該相鄰程式化狀態,且識別該等記憶體胞之該預期數目包括評估使用該分裂比率程式化至該給定程式化位準之該等記憶體胞之數目。在其他實施例中,程式化該等記憶體胞包括將該等記憶體胞設定至多個記憶體狀態,使得相鄰記憶體狀態之間的各別分離不均一。
根據本發明之實施例,額外提供用於資料儲存之裝置,其包括:一記憶體,其包括記憶體胞之一陣列;及儲存電路。該儲存電路經組態以:在該等記憶體胞之一群組中識別該群組中之待程式化至一給定程式化狀態之記憶體胞之一預期數目;取決於待程式化至該給定程式化狀態之該等記憶體胞之該預期數目而設定該給定程式化狀態與一相鄰程式化狀態之間的一分離;及使用該所設定之分離程式化該群 組中之該等記憶體胞。
根據本發明之實施例,額外提供一種用於資料儲存之方法,其包括:在一第一程式化階段中,藉由將記憶體胞之每一群組中的該等記憶體胞程式化為一組各別初始程式化位準而將第一資料儲存於記憶體胞之多個群組中。在該第一程式化階段之後的一第二程式化階段中,藉由識別每一群組中之在該第一程式化階段中經程式化至該等初始程式化位準之一預定義部分子組中之各別位準的可用記憶體胞而將第二資料儲存於該多個群組中。僅該等所識別之可用記憶體胞程式化有該第二資料,使得在該等記憶體胞之該等群組中之一固定位置開始程式化一給定群組之該第二資料而不顧及該等可用記憶體胞之實際數目的變化,以便將該等可用記憶體胞中之至少一些設定至不同於該等初始程式化位準之一或多個額外程式化位準。
在一些實施例中,該方法包括藉由在該固定位置處存取該等記憶體胞而讀取該給定群組之該第二資料。在其他實施例中,該第二資料包括多個資料字組,且每一資料字組之大小大於該等記憶體胞之該多個群組中之每一者中的可用記憶體胞之實際數目。在又其他實施例中,讀取該第二資料包括藉由僅自其中程式化有該多個資料字組中之一給定資料字組之記憶體胞之一或多個群組讀取該第一資料而讀取該給定資料字組。
在一實施例中,該方法包括當以該第二資料程式化該等所識別之可用記憶體胞留下該等所識別之可用記憶體胞中的一或多者未程式化時以第三資料程式化該等未程式化之記憶體胞。在另一實施例中,該第二資料包括資料字組大小不超過記憶體胞之該多個群組中之每一者中的可用記憶體胞之數目的多個資料字組。
根據本發明之實施例,額外提供用於資料儲存之裝置,其包括:一記憶體,其包括記憶體胞之一陣列;及儲存電路。該儲存電路 經組態以:在一第一程式化階段中,藉由將記憶體胞之每一群組中的該等記憶體胞程式化為一組各別初始程式化位準而將第一資料儲存於記憶體胞之多個群組中;及在該第一程式化階段之後的一第二程式化階段中,藉由識別每一群組中之在該第一程式化階段中經程式化至該等初始程式化位準之一預定義部分子組中之各別位準的可用記憶體胞而將第二資料儲存於該多個群組中;及僅以該第二資料程式化該等所識別之可用記憶體胞,使得在該等記憶體胞之該等群組中之一固定位置開始程式化一給定群組之該第二資料而不顧及該等可用記憶體胞之實際數目的變化,以便將該等可用記憶體胞中之至少一些設定至不同於該等初始程式化位準之一或多個額外程式化位準。
連同圖式自本發明之以下實施方式,將更全面理解本發明。
20‧‧‧記憶體系統
24‧‧‧記憶體器件
28‧‧‧記憶體胞陣列
32‧‧‧記憶體胞
36‧‧‧讀取/寫入單元
40‧‧‧記憶體控制器
44‧‧‧介面
48‧‧‧處理器
50‧‧‧錯誤校正碼(ECC)單元
52‧‧‧主機
70‧‧‧碼字
74‧‧‧資料位元
78‧‧‧反轉位元
82‧‧‧內碼同位位元
86‧‧‧外碼同位位元
圖1為示意性地說明根據本發明之實施例的記憶體系統之方塊圖;圖2為示意性地說明根據本發明之實施例的資料碼字之圖;圖3A及圖3B為展示根據本發明之實施例之用於儲存具有每記憶體胞非整數數目個位元之資料的程式化位準之分佈的曲線圖;圖4A及圖4B為示意性地說明根據本發明之實施例之用於在可用記憶體胞之間以已知位移儲存資料之兩個技術的圖;圖5為示意性地說明根據本發明之實施例之用於在可用記憶體胞之間以已知位移寫入資料之方法的流程圖;及圖6為示意性地說明根據本發明之實施例之用於讀取在可用記憶體胞之間以已知位移寫入之資料的方法之流程圖。
概述
使用每記憶體胞非整數數目個位元儲存資料可較之於使用整數 數目更為有利,此係由於其使得能夠分別使用增加或減小之數目個程式化位準改良儲存密度或可靠性,而不將位準之總數限制為二之整數次冪。
本發明之實施例提供用於使用每記憶體胞非整數數目個位元來管理資料之儲存的改良之方法及系統。所揭示實施例使用兩階段程式化方案之若干變體。此類兩階段程式化方案之各種實例描述於(例如)2011年7月28日申請之美國專利申請案13/192,501中,該申請案讓渡給本專利申請案之受讓人且其揭示內容以引用的方式併入本文中。在此類方案中,在第一程式化階段中,使用為二之整數次冪之數目個程式化位準程式化記憶體胞。在第二程式化階段中,僅將額外位元儲存於各自在第一階段中程式化至一或多個所選位準之一群組中的一位準之記憶體胞中。此等記憶體胞適合於在第二階段中加以程式化,且在本文中亦被稱作「可用記憶體胞」。
可用記憶體胞之確切數目取決於資料,且因為係可變的。因此,在一些實施例中,在第一階段中寫入之資料頁視情況經位元翻轉(亦即,反轉位元之極性)以確保用於儲存第二階段資料之足夠數目個可用記憶體胞。然而,當資料經受錯誤校正及/或錯誤偵測碼時,位元翻轉可能有問題,其中經反轉的有效碼字未必亦為有效碼字。並不保證每一經反轉碼字至另一有效碼字之映射的碼之實例包括循環冗餘碼(CRC)及博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)。在一實施例中,寫碼方案使用內碼及外碼。可結合外碼(例如,低密度同位檢查-LDPC)使用內碼(例如,CRC或BCH)以(例如)辨識用於提早終止反覆LDPC解碼器或用於解析收集-設定情形之條件。在一些實施例中,所儲存碼字之極性藉由各別反轉位元(其通常(但不必)嵌入於碼字中)來指示。
在一實施例中,該內碼包含諸如CRC碼(或錯誤偵測模式中之 BCH碼)之錯誤偵測碼。自記憶體胞讀取資料,對外碼進行解碼,且將CRC解碼應用(可能與外部解碼器並行地)於所讀取資料及經反轉之相同資料兩者。基於CRC解碼中之任一者是否指示未發現錯誤(且可能基於反轉位元)而判定極性。在另一實施例中,根據所讀取資料中反轉位元之極性而將CRC解碼僅應用一次。在又一實施例中,將CRC解碼器之結果與零字組(指示無反轉)及等於應用於全1字組之CRC的字組(指示已應用反轉)進行比較。在又另一實施例中,內碼包含諸如BCH碼之錯誤校正碼(經組態為錯誤校正操作模式),且將解碼應用於所讀取資料及經反轉之相同資料兩者。根據兩個BCH解碼器中的任一者之結果是否可解碼(亦即,無錯誤)而判定碼字之極性。
在一些實施例中,每一記憶體胞在第一階段(上述兩階段程式化方案之第一階段)中經程式化以採用四個初始位準中之一者,該四個初始位準中之兩者經選擇用於第二階段。在第二階段中,僅將額外位元寫入至經程式化至兩個所選位準中之一者的記憶體胞。所選位準之記憶體胞佔用情況因此在第二階段中大約一分為二,從而導致總共六個位準,其中四個位準的填入大致減半。由於根據此方案,一半該等記憶體胞儲存3個位元/記憶體胞,且另一半儲存2個位元/記憶體胞,因此該器件儲存平均數目2.5個位元/記憶體胞。
在如上文所描述使用六位準程式化方案之所揭示實施例中,用於將三位元組合映射至程式化位準之專用方案經設計以使得能夠識別在第二階段中程式化之記憶體胞而無需讀取在第一階段中程式化之整個資料。在一個實施例中,藉由使用兩個讀取臨限值僅讀取中央有效位元(CSB)頁而執行對記憶體胞之識別。在另一實施例中,識別該等記憶體胞涉及使用單一讀取臨限值僅讀取最低有效(LSB)位元頁。所揭示之技術因此避免不必要的讀取及解碼操作。
在一些實施例中,替代均一的位準間距,基於位準之記憶體胞 佔用情況判定程式化位準之間的臨限電壓間距。在此等實施例中,占用度較小的鄰近位準之間的間距或分離被設定地比占用度高的鄰近位準之間的間距更接近。可使用此類不均一間距來(例如)達成跨越所有位準之均一讀取錯誤概率。
在一些實施例中,N位元大小的字組(例如,經編碼資料之N位元碼字)寫入至N個記憶體胞之群組(其亦稱為記憶體胞群組)。在此等實施例中,在第一階段中儲存之前應用可選位元反轉以確保第二階段中的足夠位準占用度(亦即,可用記憶體胞之足夠數目),如上文所描述。若此外三個位準(用於第一階段中的四個位準中之三個位準)在第二階段中分裂,則每一記憶體胞群組中僅約3/4之記憶體胞可用於儲存額外位元。在一些實施例中,在四個記憶體胞群組之可用記憶體胞之間儲存三個N位元碼字。每一碼字劃分成兩個區段,該兩個區段在可用記憶體胞之間以某些固定位移寫入於兩個單獨記憶體胞群組中。
在一實例實施例中,碼字之區段按順序寫入,用完所有可用記憶體胞。在此實施例中,寫入每一片段的可用記憶體胞之間之位移取決於資料。為讀取一碼字,藉由至少自未寫入任何各別區段之記憶體胞群組讀取資料而評估各別區段之位移。
在其他實施例中,在每一記憶體胞群組中的可用記憶體胞之間以已知固定位移寫入碼字之區段。藉由使用固定位移,讀取給定碼字之區段僅需要自寫入彼碼字之區段的記憶體胞群組讀取資料。所讀取之區段接著經組合以恢復原始碼字。因此,使用已知位移使得能夠避免不必要的讀取及解碼操作。
在其他實施例中,第二階段中之資料大小經選擇以適合於記憶體胞群組中的可用記憶體胞之最小數目,且因此簡化資料讀取及寫入操作。然而,在此等實施例中,對於第一及第二程式化階段可能需要單獨的不同寫碼方案,因此使得總體寫碼方案更為複雜。
系統描述
圖1為示意性地說明根據本發明之一實施例的記憶體系統20之方塊圖。系統20可用於各種主機系統及器件,諸如計算器件、蜂巢式電話或其他通信終端機、可移除式記憶體模組(例如,「隨身碟」或「快閃驅動器」器件)、固態磁碟(SSD)、數位相機、音樂及其他媒體播放器及/或其中儲存及擷取資料之任何其他系統或器件。
系統20包含記憶體器件24,其將資料儲存於記憶體胞陣列28中。記憶體陣列包含多個類比記憶體胞32。在本專利申請案之內容脈絡中且在申請專利範圍中,術語「類比記憶體胞」用以描述保持物理參數(諸如電壓或電荷)之連續類比值的任何記憶體胞。陣列32可包含任何種類之固態類比記憶體胞,諸如,NAND、NOR及電荷收集快閃記憶體(CTF)快閃記憶體胞、相變RAM(PRAM,亦稱作相變記憶體(PCM))、氮化物唯讀記憶體(NROM)、鐵電RAM(FRAM)、磁性RAM(MRAM)及/或動態RAM(DRAM)記憶體胞。儘管本文所述的實施例主要參考類比記憶體,但所揭示技術亦可與各種其他記憶體類型一起使用。
儲存於記憶體胞中之電荷位準及/或寫入至記憶體胞中及自記憶體胞讀出之類比電壓或電流在本文中統稱為類比值、儲存值或類比儲存值。儘管本文所述的實施例主要解決臨限電壓,但本文所述的方法及系統可與任何其他適當種類之儲存值一起使用。
系統20藉由程式化記憶體胞以採用各別程式化狀態(其亦稱為程式化位準)而將資料儲存於模擬記憶體胞中。該等程式化位準選自一組有限可能位準,且每一位準對應於某一標稱儲存值。舉例而言,可藉由將四個可能標稱儲存值寫入至記憶體胞中來對2位元/記憶體胞MLC進行程式化以採用四個可能程式化位準中之一者。本文所述的技術主要解決每記憶體胞非整數數目個位元之儲存密度,亦即,不為二 之整數次冪的數目個程式化位準。
記憶體器件24包含讀取/寫入(R/W)單元36,其將儲存於記憶體裝置中之資料轉換成模擬儲存值且將其寫入記憶體胞32中。在替代實施例中,R/W單元不執行該轉換,但具備電壓樣本,亦即具備用於儲存於該記憶體胞中之儲存值。當自陣列28中讀出資料時,R/W單元36將記憶體胞32之儲存值轉換成具有一或多個位元之整數解析度之數位樣本。資料通常按群組(稱為頁)被寫入至記憶體胞及自該等記憶體胞讀取。在一些實施例中,R/W單元可藉由將一或多個負抹除脈衝施加至記憶體胞32之群組來抹除該等記憶體胞。
資料至記憶體器件24之儲存及自記憶體器件24之擷取係藉由記憶體控制器40來執行。記憶體控制器40包含用於與記憶體器件24、處理器48及錯誤校正碼(ECC)單元50通信之介面44。所揭示之技術可藉由記憶體控制器40、藉由R/W單元36或兩者來進行。因此,在本發明內容脈絡中,記憶體控制器40及R/W單元36統稱為進行所揭示技術之儲存電路。
記憶體控制器40與主機52通信,以用於接受供儲存於記憶體器件中之資料且用於輸出自記憶體器件擷取之資料。ECC單元50使用適當ECC對資料進行編碼以供儲存,且對自記憶體擷取之資料之ECC進行解碼。可使用任何適當類型之ECC,諸如低密度同位檢查(LDPC)、里德-所羅門(RS)或博斯-查德胡里-霍昆格姆(BCH)。在一些實施例中,除包含錯誤校正碼之外,ECC單元50亦進一步包含另一(通常較小)錯誤校正或錯誤偵測碼。可用於此類額外碼之實例碼包括用於錯誤校正之BCH及用於錯誤偵測之循環冗餘碼(CRC)。ECC單元50在編碼方向上之輸出亦稱為「碼字」。
可以硬體實施記憶體控制器40,例如使用一或多個特殊應用積體電路(ASIC)或場可程式化閘陣列(FPGA)。或者,記憶體控制器可 包含執行適當之軟體的微處理器或硬體與軟體元件之組合。
圖1之組態為一實例系統組態,其純粹為了概念清晰性而展示。亦可使用任何其他適當記憶體系統組態。舉例而言,儘管圖1之實例展示單一記憶體器件,但在替代實施例中,記憶體控制器40可控制多個記憶體器件24。已出於明晰之目的自圖式省略對於理解本發明之原理並不必要之元件,諸如各種介面、定址電路、時序及排序電路及除錯電路。
在圖1中所示的實例系統組態中,記憶體器件24與記憶體控制器40實施為兩個單獨的積體電路(IC)。然而,在替代實施例中,記憶體裝置與記憶體控制器可於獨立的半導體晶片上整合為單個多晶片封裝(MCP)或系統單晶片(SoC),且可由內部匯流排來互連。進一步替代地,一些或所有記憶體控制器電路可駐留於安置有記憶體陣列之相同晶粒上。進一步替代地,記憶體控制器40之功能性中的一些或全部可以軟體實施且由處理器或主機系統之其他元件進行。在一些實施例中,可在同一晶粒上或在同一器件封裝中之單獨晶粒上製造主機44與記憶體控制器40。
在一些實施例中,記憶體控制器40包含以軟體程式化以進行本文中所描述之功能的通用處理器。可經由(例如)網路將軟體以電子形式下載至處理器,或替代地或另外,可將軟體提供於及/或儲存於非暫時性有形媒體(諸如,磁性、光學或電子記憶體)上。
在陣列28之組態實例中,記憶體胞32配置有多列及多行,且各記憶體胞包含浮閘電晶體。每一列中的電晶體之閘極由字線連接,且每一行中的電晶體之源極由位元線連接。在本發明之內容脈絡中,術語「列」以習知意義使用以意謂藉由共同字線饋送之記憶體胞之群組,且術語「行」意謂藉由共同位元線饋送之記憶體胞之群組。術語「列」及「行」並不暗示記憶體胞相對於記憶體器件之特定實體定 向。記憶體陣列通常劃分成多個記憶體頁,亦即同時程式化及讀取之記憶體胞之群組。
在一些實施例中,記憶體頁細分為扇區。頁可以各種方式映射至字線。每一字線可儲存一或多個頁。給定頁可儲存於一字線之所有記憶體胞中,或儲存於記憶體胞之子集(例如,奇數次序或偶數次序記憶體胞)中。
通常在含有多個頁之塊中進行記憶體胞之抹除。典型記憶體器件可包含數千個抹除塊。在典型每記憶體胞兩位元MLC器件中,每一抹除塊為約32個字線,每一字線包含數萬個記憶體胞。此類器件之每一字線通常分割成四個頁(奇數/偶數次序記憶體胞、記憶體胞之最低/最高有效位元)。每抹除塊具有32個字線之每記憶體胞三位元器件將每抹除塊具有192個頁,且每記憶體胞四位元器件將每塊具有256個頁。或者,亦可使用其他塊大小及組態。一些記憶體器件包含兩個或兩個以上通常稱為平面之單獨記憶體胞陣列。由於每一平面在連續寫入操作之間具有特定「忙碌」週期,因此可替代地將資料寫入至不同平面以便增加程式化速度。
使用每記憶體胞非整數數目個位元儲存資料
使用每記憶體胞非整數數目個位元儲存資料等效於程式化記憶體胞以採用數目不為二之整數次冪的程式化位準或狀態。在一些實施例中,系統20使用兩階段程式化方案來使用每記憶體胞非整數數目個位元儲存資料。
在第一階段中,使用為二之整數次冪的數目個程式化位準程式化記憶體胞。舉例而言,在TLC器件中,首先僅使用四個位準(八個可能位準中之四個位準)來程式化該等記憶體胞。在第二階段中,可以額外位元程式化僅在第一階段中程式化至第一階段位準之間的某些位準之記憶體胞。在八位階TLC實例中,經選擇用於在第二階段中程 式化之第一階段位準包含一個、兩個或三個位準之群組,從而分別導致五個、六個或七個位準之總數目。
在第二階段中,額外位元之值(「0」或「1」)判定各別記憶體胞保持該記憶體胞在第一階段中被程式化至之程式化位準還是程式化至不同於第一階段之所有位準的另一通常較高的程式化位準。因此,在第一階段中用給定數目個記憶體胞填入之程式化位準在第二階段中大致有一半分裂,從而採用類似的「0」與「1」位元佔用比。此類兩階段程式化方案之各種實例描述於(例如)上文所引用之美國專利申請案13/192,501中。
在一些實施例中,待程式化之資料包含單獨資料頁,例如,具有有序位元有效性之頁。儲存電路在第一階段中儲存位元有效性低於最高有效位元之頁,且在第二階段中僅儲存最高有效資料頁。舉例而言,在TLC器件中,儲存電路在第一階段中儲存最低有效位元(LSB)及中央有效位元(CSB)頁。接著,基於在第一階段中儲存之資料,儲存電路在第二階段期間儲存最高有效位元(MSB)頁。下文結合圖3A及圖3B描述第一及第二階段程式化位準、位準分裂及位元組合至程式化位準之映射方案之實例。
用於對經反轉碼字進行解碼之方法
當在第二階段中程式化資料(例如,MSB資料)時,填入待分裂之程式化位準之記憶體胞的總數目取決於資料,且可能被發現不充足。在一些實施例中,在第一階段中寫入之資料頁之位元極性視情況經反轉以確保待在第二階段中分裂之位準之足夠記憶體胞填入度。此外,當資料經受錯誤校正寫碼時,經反轉資料之習知解碼可能不可行,此係由於經反轉資料可能不包含有效碼字。
為增加儲存可靠性,在一些實施例中,儲存電路使用適當編碼方案(其通常由ECC單元50實施)保護待程式化之資料。
圖2為示意性地說明根據本發明之實施例之碼字70的圖。在圖2之實例中,碼字70包含資料位元74(例如,第一階段中之LSB或CSB資料)、反轉位元78、內碼同位位元82,及外碼同位位元86。在本實例中,同位位元86包含LDPC碼,ECC單元50將其一起應用於資料位元74、反轉位元78及內碼同位位元82。因此,資料位元74、反轉位元78內碼同位位元82及外碼同位位元86之聚集包含LDPC碼字。進一步在圖2之實例中,同位位元82包含CRC或BCH碼,ECC單元50將其應用於資料位元74及反轉位元78。在所描述之組態中,LDPC外碼可校正內碼同位位元82中之錯誤,其使得能夠使用內碼提早終止LDPC解碼反覆或清除外部解碼後之殘餘錯誤,如下文所解釋。
圖2之組態為一例示性組態,其純粹係為了概念清晰而展示,且亦可使用其他適當組態。舉例而言,亦可使用其他適當碼、寫碼方案,及碼字70之不同元素的大小及排序。
在一些實施例中,可例如結合LDPC碼86使用內碼82(例如,包含CRC或BCH碼)以辨識用於在對LDPC碼字進行反覆解碼時的提早終止的條件或檢測及減輕LDPC解碼器中之收集-設定情形。作為另一實例,當內碼包含錯誤校正碼(例如,BCH)時,碼82可用於減輕在LDPC解碼器之輸出處剩餘的殘餘錯誤(「錯誤底限」)。2010年10月28日申請的讓渡給本專利申請案之受讓人且其揭示內容以引用之方式併入本文中的美國專利申請案12/913,815描述用於在反覆解碼期間執行提早終止的若干方法。
在一些實施例中,儲存電路最初將反轉位元78設定為「0」,且視情況對整個碼字70進行反轉或位元翻轉以確保待分裂之位準在記憶體胞中有足夠位準填入,如上文所描述。當讀取資料時,儲存電路自陣列28擷取碼字,且應用使用ECC單元50之解碼。若經解碼位元反轉78等於「1」,則儲存電路將碼字之資料位元翻轉回來,隨後將位元74 遞送至主機。然而,為使解碼恰當地運作,每一經反轉碼字亦應包含有效碼字。換言之,寫碼方案之每一有效碼字應藉由反轉映射至另一有效碼字。藉由包括碼之同位檢查矩陣之每一列具有偶數權重(亦即,該列包含偶數數目個非零元素)之要求,LDPC碼可經設計以支援以下特性:對於每一有效碼字,位元翻轉導致另一有效碼字。然而,在CRC及BCH碼中難以或不可能達成此特性。在以下描述中,假定外碼(例如LDPC)支援經反轉有效碼字之有效性之上述特性。
現描述用於對碼字70進行解碼,且決定其在儲存之前是否反轉且因此是否應反轉回來之若干方法。在所揭示實施例中,內碼82包含不保證各別位元經翻轉碼字之有效性的碼。在以下描述中,X表示CRC或BCH碼字。舉例而言,X可包含資料位元74、反轉位元78,及同位位元82。此外,令~X表示X之位元經翻轉版本,且CRC(X)或BCH(X)表示解碼操作。又,ZEROS及ONES分別表示全「0」及全「1」位元序列。在本專利申請案之內容脈絡中且在申請專利範圍中,內碼解碼係指錯誤偵測及錯誤校正碼兩者。
首先描述其中內碼82包含錯誤偵測碼之若干實施例。儘管該描述主要係關於使用CRC寫碼之實施例,但亦可使用任何其他適當的錯誤偵測碼,諸如經組態而以錯誤偵測模式操作之BCH碼。根據錯誤偵測碼之特性,若X無錯誤,則CRC(X)=ZEROS,且另一方面,將CRC解碼應用於錯誤碼字應導致ZEROS之概率極低。
在一個實施例中,ECC單元50應用兩個CRC解碼操作,即CRC(X)及CRC(~X)(可能並行地)。若CRC(X)=ZEORS,則儲存電路將碼字70視為未經反轉而儲存。另一方面,若CRC(~X)=ZEROS,則假定碼字70經反轉。否則(亦即,當兩個CRC解碼器皆不產生ZEROS結果時),尚未滿足用於提早終止LDPC反覆解碼器之準則。
在另一實施例中,ECC單元50基於反轉位元78之值僅執行一個 CRC解碼。若反轉位元指示無反轉(「0」),則ECC單元50對CRC(X)進行解碼。否則,位元指示碼字經反轉,且ECC單元50對CRC(~X)進行解碼。ECC單元50可在各別CRC解碼結果等於ZEORS的情況下執行LDPC解碼反覆之提早終止。
在又一實施例中,解碼方案依賴於內碼為線性碼。根據線性特性,CRC(~X+ONES)=CRC(~X)+CRC(ONES),其中「+」表示逐位元互斥或(XOR)。然而,由於X=~X+ONES,因此得出ZEROS=CRC(X)=CRC(~X)+CRC(ONES)。在該實例實施例中,ECC單元50執行CRC解碼,且檢查結果等於CRC(ONES)還是ZEORS以分別識別碼字經反轉還是未經反轉。注意,對於每一不同內碼,值CRC(ONES)需要預先計算且僅儲存一次。
在上文所描述的實施例中,ECC單元50可能(極少地)遭遇CRC(.)解碼之結果與位元反轉78之經解碼值之間的衝突。此外,應用CRC(X)及CRC(~X)之結果可能並不始終導致是否反轉讀取資料之確定性決策。在此類情況下,向ECC單元提供適當指示。當此類衝突或不確定結論出現時,ECC單元50可使用任何合適的解碼方法。舉例而言,ECC單元50可決定不終止LDPC反覆解碼器。
上文在錯誤偵測碼之內容脈絡中所描述的實施例中之一些同樣適用於錯誤校正碼。
現描述一實施例,其中內碼82包含諸如BCH(經組態為錯誤校正操作模式)之錯誤校正碼。ECC單元50應用兩個解碼操作,即BCH(~X)及BCH(x)。若~X或X中僅一者可解碼,亦即,解碼出無錯誤結果,則儲存電路將碼字70分別視為位元經翻轉或位元未經翻轉。若~X及X兩者皆可解碼,或兩者皆未能產生無錯誤結果,則可使用某一其他準則來判定反轉狀態,例如基於具有(在解碼後)最少數目個錯誤之準則。其他準則包括(例如)在解碼之後與反轉位元之一致性,或錯 誤型樣之權重。在替代實施例中,ECC單元50指示不確定的或多個解碼結果。在將內部錯誤校正碼用於「錯誤底限」情形之實施例中,極少需要應用內碼解碼器,且因此對BCH解碼兩次(每碼字)僅產生小的計算增加。
在上文所描述的實施例中,通常假定,在外碼中,經反轉有效碼字映射至其他有效碼字。在並不能保證此特性之其它實施例中,可同樣將類似於上文針對內碼所描述之解碼方案的解碼方案應用於外碼。
讀取在第二程式化階段中儲存之資料
圖3A及圖3B為展示根據本發明之實施例之用於以具有每記憶體胞非整數數目個位元之方式儲存資料的程式化位準之分佈的曲線圖。圖3A及圖3B中之每一者劃分成上部及下部部分,分別展示在第一及第二程式化階段之後的程式化位準及各別記憶體胞佔用情況。
在所揭示之實施例中,根據圖3A及圖3B,採用基本TLC器件,其記憶體胞32在第一階段中使用四個位準加以程式化,其中之兩個位準在第二階段中進一步分裂。由於每一記憶體胞在第一階段之後儲存兩個位元之資訊,且一半該等記憶體胞經程式化以在第二階段中儲存一額外位元,因此器件最終平均儲存2.5個位元/記憶體胞(使用八個TLC位階中之六者)。
在圖3A中,L0、L1、L3及L5表示記憶體胞32在第一階段中可程式化至之四個位準。位準L0、L1、L3及L5中之每一者分別映射至一各別位元對組合,亦即,「11」、「10」、「00」,及「01」。在每一此類位元對組合中,個別位元對應於單獨資料串流或頁。在以下描述中,左位元對應於LSB頁位元,且右位元對應於CSB頁位元(亦即,「10」意謂LSB=「1」且CSB=「0」)。
在第二程式化階段中,僅在第一階段中已程式化至位準L1或L3 之記憶體胞藉由額外位元(MSB)得以進一步程式化。注意,由於根據用以位準映射之所選位元,CSB位元在位準L0及L5處等於「1」,且在位準L1及L3處等於「0」,因此可藉由僅檢驗CSB位元來識別處於位準L1及L3之記憶體胞。此特性亦簡化MSB資料讀取,如下文所解釋。
如圖3A中所示,程式化額外位元分裂處於L1之記憶體胞之群體以使得約一半之記憶體胞保持在L1,且其餘一半記憶體胞被程式化至L2。類似地,處於L3之記憶體胞之大致一半被程式化至L4,而另一半之記憶體胞保持在L3不變。因此,在第二階段中經程式化至位準L1、L2、L3及L4中之一者的記憶體胞根據各別位元指派「100」、「101」、「001」或「000」而儲存三位元資訊。在每一此類位元三聯體中,左邊、中間及右邊位元對應於各別單獨資料串流,例如,LSB、CSB或MSB資料頁。由於位準L0及L5在第二階段中不經程式化,因此指派給此等位準之各別位元三聯體表示為「11x」或「01x」,其中「11」及「01」為先前位元對組合(來自第一階段),且最右「x」表示未經程式化之額外位元。
現描述用於讀取使用圖3A及圖3B中所描繪之程式化位準之組態儲存於TLC器件中的資料之若干方法。如下所述,不同於其中LSB及CSB資料兩者皆應讀取以便識別程式化有額外位元之記憶體胞的習知方法,所揭示方法中之一些使得能夠藉由最初僅讀取CSB或LSB資料來識別程式化有MSB資料之記憶體胞。
在一實施例中,結合圖3A,為讀取MSB頁,儲存電路首先識別在第二階段中程式化有額外位元(亦即,程式化至位準L1...L4)之記憶體胞。儲存電路首先讀取LSB及CSB頁中之每一者且將ECC解碼應用於LSB及CSB頁中之每一者,且識別在位元三聯體之最左位元對中儲存位元值「10」或「00」之記憶體胞。在另一實施例中,儲存電路在單一讀取命令中讀取臨限值TH_CSB_LO及TH_CSB_HI(圖3A中)僅讀 取CSB資料且對其進行ECC解碼。如圖3A中所示之程式化位準及位元至位準映射之組態使得儲存電路能夠避免將因讀取LSB及CSB資料兩者而導致的不必要的讀取及解碼操作。
儲存電路接著識別CSB位元等於「0」之記憶體胞。為讀取寫入於所識別記憶體胞中之資料(例如,MSB資料),儲存電路使用(例如)兩個讀取臨限值(未展示)以使得一個臨限值位於L1與L2之間,且另一臨限值位於L3與L4之間。
在圖3B中,在第一階段中將位準L0、L1、L2及L4映射至各別位元對「11」、「10」、「00」及「01」。在第二階段中,儲存電路將額外位元僅程式化至在第一階段中已程式化至L2或L4之記憶體胞。因此,處於L2之記憶體胞中約一半的位準移位至L3,且處於L4之一半記憶體胞的位準移位至L5。L2、L3、L4及L5位準映射至各別位元三聯體「001」、「000」、「010」及「011」。位準L0及L1在第二階段中未經程式化且映射至各別位元三聯體「11x」及「10x」。
在一些實施例中,類似於上文圖3A中之描述,左邊、中間及右邊位元對應於各別LSB、CSB及MSB資料頁。在一實施例中,為讀取MSB資料,儲存電路藉由首先使用圖3B中表示為TH_LSB之單一讀取臨限值僅對LSB頁進行讀取及解碼(相較於對LSB及CSB頁兩者進行讀取及解碼)而識別程式化有額外位元之記憶體胞。此實施例較之於上文圖3A(其中讀取需要兩個讀取臨限值)中之一者更為有利,此係由於較大數目的讀取臨限值通常增加頁讀取時間。此外,類似於圖3A之方法,對於讀取MSB資料僅需要兩個讀取臨限值。儲存電路接著使用兩個讀取臨限值(一個位於L2與L3之間,且另一個位於L4與L5之間)自所識別記憶體胞讀取MSB資料。藉由使用圖3B中所示的程式化位準及位元至位準映射之組態,儲存電路可有效地讀取MSB頁,且避免將因讀取LSB及CSB資料兩者而導致的不必要的讀取及解碼操作。
如自上文之描述及圖可見,在第二階段中程式化額外位元通常在不同位準之間產生不均一的記憶體胞佔用情況。舉例而言,圖3B中程式化至位準L2...L5中之每一者的記憶體胞之數目為程式化至L0或L1之記憶體胞數目的約一半。如圖3B中所示,位準之間的臨限電壓(VTH)間距或分離及在每一位準中的記憶體胞佔用情況(以及其他因素)影響鄰近位準之分佈之間的重疊量。由於此重疊與讀取錯誤概率緊密相關,因此不同記憶體胞佔用位準之間的均一間距可導致跨越該等位準之不均一(且非最佳)讀取錯誤概率。
在一些實施例中,指派給不同程式化位準之臨限電壓經設定以便基於位準之記憶體胞佔用情況達成跨越所有位準之均一讀取錯誤概率。為補償不同記憶體胞佔用情況,鄰近的高填入度位準之間的距離(亦即,臨限電壓差)應設定為大於鄰近的較小填入度位準之間的距離。
在圖3B之實例組態中,△L01表示L0與L1之間的電壓差,且△L23、△L34及△L45分別表示L2-L3、L3-L4及L4-L5之間的電壓差。在一實施例中,藉由基於位準佔用情況調整間距以使得△L01大於差△L23、△L34及△L45(在本實例中假定其為類似的)中之每一者,儲存電路達成跨越各程式化位準之均一讀取錯誤概率。此外,L1與L2之間的間距應經組態以大於△L23、△L34及△L45,但小於△L01。
在一些實施例中,儲存電路可額外基於不同於位準佔用情況之因素判定程式化位準之間的電壓間距。舉例而言,2008年7月11日申請、其揭示內容以引用之方式併入本文中的美國專利7,925,936描述用於藉由調整各位準之間的間距以補償在讀取具有不同位元有效性之頁時執行的不同數目個讀取操作來達成跨越該等程式化位準之均一讀取錯誤概率的若干方法。
圖3A及圖3B之組態為一例示性組態,其純粹係為了概念清晰而 展示,且亦可使用其他適當組態。舉例而言,在替代實施例中,亦可使用其他程式化位準、位準數目、位準分裂方案、位元至位準映射、讀取臨限值及/或位準之間的間距。
在第二階段中以已知位移儲存資料
舉例而言,考慮使用七個程式化位準將資料儲存於TLC器件中。在一些實施例中,儲存電路使用上文所描述的兩階段程式化方法之適當變體儲存資料。在一實例實施例中,儲存電路在第一階段中使用如(例如)在圖3A之上部中所示的四個位準儲存LSB及CSB資料。因此,在本實例中,圖3A之上部中的三個位準(例如,L0、L1及L3)待於第二階段中分裂。
在一些實施例中,儲存電路對表示為碼字(諸如碼字70)中之LSB、CSB及MSB資料的資料串流單獨地進行編碼。在一實施例中,儲存電路程式化N個記憶體胞之群組中的記憶體胞32,且亦對資料進行編碼以供儲存於N位元碼字中,如本文所描述。在以下描述中,術語「記憶體胞群組」或僅群組係指同時程式化之N個記憶體胞之群組。注意,儘管假定所儲存資料在各別碼字中經受ECC編碼,但所揭示方法亦適用於儲存原始未經編碼資料。
使用四個程式化位準,儲存電路寫入(在第一階段中)N位元LSB及CSB碼字。如下文進一步解釋的,在每一記憶體胞群組中,可用記憶體胞之數目小於N,但在第一階段中,儲存電路保證此數目超出0.75.N(通常超出一小量)。因此,儘管完整MSB碼字無法儲存於單一記憶體胞群組中,但三個N位元碼字可儲存在四個記憶體胞群組當中。
在下文表1中,示範一種用於將三個N位元碼字劃分於四個記憶體胞群組當中之技術。在表1中,MSB0...MSB2表示MSB碼字,且CW0...CW3表示記憶體胞群組。表1中之條目描繪取自於每一碼字且 寫入至各別記憶體胞群組中之可用記憶體胞的位元之數目。舉例而言,來自MSB0之0.25.N個位元及來自MSB1之0.5.N個位元程式化於CW1中。作為另一實例,MSB1位元在CW1與CW2之間劃分成兩半。
在一些實施例中,必要時,儲存電路在第一階段中藉由反轉LSB、CSB或該等碼字兩者以保證至少存在0.75.N個記憶體胞可用於將MSB資料儲存於各別記憶體胞群組中而對資料進行預處理。可用記憶體胞之群組可分割成兩個互補子群組,使得一個子群組包含0.75.N個記憶體胞,且另一子群組包含其餘記憶體胞(其稱為「額外記憶體胞」)。由於第一階段中之四個位準中之每一者中的記憶體胞佔用情況取決於所儲存之實際資料,因此額外記憶體胞之數目亦取決於資料。
可使用各種組態用於在四個記憶體胞群組當中劃分三個MSB碼字之位元。上文表1呈現一個此類實例,而下文描述額外實例。在一實施例中,每一碼字劃分成兩個區段,該兩個區段在可用記憶體胞之間以特定位移儲存於兩個不同記憶體胞群組中。儲存電路在CW0...CW3當中連續地儲存碼字MSB0...MSB2之區段,用完每一記憶體胞群組中之所有可用記憶體胞。令Ni表示記憶體胞群組CWi中的可用記憶體胞之數目,且Ei表示各別額外記憶體胞之數目。
在此實施例中,碼字之區段在可用記憶體胞當中以可變位移儲存。注意,在當前內容脈絡中,僅在每一記憶體胞群組中之可用記憶體胞之間量測位移群組因此,舉例而言,零位移係指記憶體胞群組 中之第一可用記憶體胞。為讀取給定MSB碼字,儲存電路需要藉由自儲存其他碼字之區段的記憶體胞群組讀取低有效性資料而評估儲存區段之各別位移。
舉例而言,在本實施例中,儲存電路以零位移在CW0中儲存MSB0位元之N0=0.75.N+E0(亦即,第一區段),且以零位移在CW1中儲存MSB0位元之其餘部分(亦即,第二區段)。儲存電路接著緊接MSB0第二區段之後將第一MSB1區段儲存於CW1中(亦即,在位移N-N0=0.25.N-E0處開始)。
當讀取MSB1第一區段時,儲存電路因此應首先對儲存於CW0中之LSB及CSB資料進行讀取及解碼,識別可用記憶體胞並對其數目N0進行計數,計算E0=N0-0.75.N,且使用E0來評估第一MSB1區段之實際位移(或等效地計算N-N0)。類似論斷對於讀取MSB2碼字之區段成立。因此,在此實例中,讀取儲存於CW1及CW2中之MSB1區段同樣涉及讀取儲存於另一記憶體胞群組(亦即,CW0)中之資料。
在下文描述之替代實施例中,儲存電路在可用記憶體胞之間以已知位移儲存MSB區段。此致能MSB資料之有效讀取,此係由於藉由已知位移,讀取給定MSB碼字僅需要讀取儲存在儲存該碼字之區段的記憶體胞群組中之資料。
圖4A及圖4B為示意性地說明用於在可用記憶體胞之間以已知位移儲存資料之兩個技術的圖。考慮將表示為MSB0、MSB1及MSB2之三個N位元MSB碼字寫入於表示為CW0...CW3之四個記憶體胞群組中。如上文所描述,在七位階TLC實例中,該四個記憶體胞群組中之每一者包含各別數目Ni=0.75.N+Ei個可用記憶體胞,其中Ei包含額外記憶體胞。
在圖4A中,每一碼字MSBi(i=0...3)劃分成表示為MSBi_A及MSBi_B之兩個區段,每一區段具有已知預定義大小。MSB0_A區段 包含0.75.N個位元且以零位移儲存於CW0中。包含0.25.N個位元之MSB0_B區段亦以零位移儲存於CW1中。MSB1區段劃分成各自具有0.5.N個位元之MSB1_A及MSB1_B區段。MSB1_A區段在MSB0_B位元之後儲存於CW1中,亦即,以0.25.N個記憶體胞之已知位移。MSB1_B區段以零位移儲存於CW2中,從而產生0.5.N個記憶體胞之已知位移用於儲存包含0.25.N個位元之MSB2_A第一區段。MSB2_B第二區段包含0.75.N個位元且以零位移儲存於CW3中。表2概述MSB區段在記憶體胞群組CW0...Cw3之間的分配,如圖4A中所示。
在圖4B中,以已知位移寫入每一MSB碼字之第一區段,且用完所有可用記憶體胞。碼字之其餘位元(亦即,第二區段)以零位移寫入於另一記憶體胞群組中。儘管每一MSBi碼字劃分成大小取決於Ei之區段MASBi_A及MSBi_B,但該等區段仍以已知固定位移定位。表3概述根據圖4B之MSB碼字區段在各別記憶體胞群組之間的分配。
在上文所描述的實施例中,包括MSB碼字之所有碼字共用N個位 元之共同大小。一方面,此簡化編碼/解碼及寫入/讀取操作以及相關電路。然而,另一方面,每一N位元MSB碼字需要儲存於一個以上記憶體胞群組中,如上文所描述。在一替代實施例中,MSB碼字僅包含0.75.N個位元(稱為短MSB碼字)。由於每一N記憶體胞群組包含Ni0.75.N個可用記憶體胞,因此短MSB碼字始終適合於記憶體胞群組中。然而,短MSB碼字之寫碼方案不同於N位元碼字之寫碼方案,且應使用資料及同位位元之其他分割。結果,ECC單元50可包含用於短MSB碼字之單獨的專用編碼器/解碼器。
圖5為示意性地說明根據本發明之實施例之用於在可用記憶體胞之間以已知位移寫入MSB資料之方法的流程圖。圖5中之方法與如圖4B中所示的在記憶體胞群組之間的MSB資料分配相對應。當該方法開始時,假定儲存電路已經執行第一程式化階段,其中LSB及CSB資料寫入於CW0...CW3中,且三個碼字MB0...MB2準備好進行程式化。該方法在記憶體胞識別步驟200處以儲存電路在每一記憶體胞群組CWi中識別可用於程式化MSB資料之記憶體胞開始。令Ni表示CWi中之可用記憶體胞之數目,且Ei=N-Ni表示各別額外記憶體胞之數目。該方法接著進行至MSB0程式化步驟204。在204步驟處,儲存電路以零位移將MSB0之前0.75.N+E0個位元程式化於CW0中,以用完所有可用CW0記憶體胞。儲存電路接著以零位移將MB0之其餘0.25.N-E0個位元程式化於CW1中。接下來,儲存電路在各別步驟208及212處程式化MSB1及MSB2碼字。儲存電路以位移0.25.N將MSB1寫入於CW1中且繼續寫入於CW2中。類似地,儲存電路以位移0.5.N將MSB2寫入於CW2中且以零位移將其餘MSB2位元寫入於CW3中。
圖6為示意性地說明根據本發明之實施例之用於讀取在可用記憶體單元之間以已知位移寫入之MSB資料的方法之流程圖。該方法在識別經程式化記憶體胞步驟250處以儲存電路識別程式化有MSB資料之 記憶體胞而開始。如例如自表3顯而易見,為獨立地讀取MSB0、MSB1或MSB2碼字中之僅一者,僅分別在{CW0及CW1}、{CW1及CW2}或{CW2及CW3}中識別程式化有額外位元之記憶體胞即足夠。為讀取MSB0、MSB1或MSB2,儲存電路進行至各別讀取步驟254、258或262。在步驟254處,儲存電路將CW0中之所有可用記憶體胞(亦即,N0=0.75.N+E0個位元)讀取至表示為MSB0_A之暫時性區段中。儲存電路接著對所讀取位元之數目N0進行計數,計算E0=N0-0.75.N,且將來自CW1之可用記憶體胞之前0.25.N-E0個位元讀取至表示為MSB0_B之暫時性區段中。儲存電路接著串接兩個暫時性區段以產生完整的MSB0碼字。在讀取步驟258及262處,儲存電路類似地根據圖4B及表3以適當區段大小及位移讀取MSB1或MSB2碼字。
圖4A、圖4B、圖5及圖6之組態為一例示性組態,其純粹係為了概念清晰而展示,且亦可使用其他適當組態。舉例而言,亦可使用其他適當數目之碼字及記憶體胞群組。作為另一實例,可選擇碼字區段在記憶體胞群組之間的其他排序方案,諸如在MSB2_A與MBS0_B或MSB1_B之間調換。
在圖4A、圖4B、圖5及圖6中描述之實施例中,在第二階段期間,通常跳過額外記憶體胞。然而,在替代實施例中,儲存電路可使用額外記憶體胞來儲存使用者、儲存管理及/或任何其他類型之資料。
應瞭解,上文所述之實施例借助於實例而引證,且本發明不限於上文特別展示且描述的內容。確切地說,本發明之範疇包括上文所述之各種特徵之組合及子組合兩者,以及熟習此項技術者在閱讀以上描述時將想到且未在先前技術中揭示的其變化及修改。以引用方式併入本專利申請案中之文件被視為申請案之整體部分,惟在此等所併入文件中以與本發明書中明確或隱含地進行之定義有衝突之方式對任何 術語進行定義之情況下,僅應考慮本發明書中之定義。
20‧‧‧記憶體系統
24‧‧‧記憶體器件
28‧‧‧記憶體胞陣列
32‧‧‧記憶體胞
36‧‧‧讀取/寫入單元
40‧‧‧記憶體控制器
44‧‧‧介面
48‧‧‧處理器
50‧‧‧錯誤校正碼(ECC)單元
52‧‧‧主機

Claims (14)

  1. 一種用於資料儲存之方法,其包含:將資料儲存於記憶體胞之一群組中,其係藉由使用至少一外碼及一內碼對該資料進行編碼,且視情況在將該經編碼資料儲存於該等記憶體胞中之前反轉該經編碼資料;以及自該等記憶體胞讀取該經編碼資料;將內碼解碼應用於該所讀取經編碼資料以產生一解碼結果;以及取決於該內碼之該解碼結果而有條件地反轉該所讀取資料之至少部分。
  2. 如請求項1之方法,其中該內碼包含其中一有效碼字之反轉並不始終導致另一有效碼字之一碼,且其中應用該內碼解碼包含對該所讀取經編碼資料及該所讀取經編碼資料之一經反轉版本中之至少一者進行解碼。
  3. 如請求項2之方法,其中應用該內碼解碼包含:對該所讀取經編碼資料及該所讀取經編碼資料之該經反轉版本兩者進行解碼,且其中有條件地反轉該所讀取資料之該至少部分包含僅當該經反轉版本之該解碼結果無錯誤且該所讀取經編碼資料之該解碼結果有錯誤時才反轉該所讀取資料之該至少部分。
  4. 如請求項2之方法,其中儲存該資料包含:與該資料相關地儲存該所儲存資料是否已反轉之一反轉指示,其中讀取該經編碼資料包含對該反轉指示進行讀取及解碼,且其中應用該內碼解碼包含取決於該反轉指示而僅對該所讀取經編碼資料或僅對該所讀取經編碼資料之該經反轉版本進行解碼。
  5. 如請求項4之方法,其中有條件地反轉該所讀取資料之該至少部 分包含:當該所讀取經編碼資料之該解碼結果與該反轉指示矛盾時,指示不能夠決定是否反轉該所讀取資料。
  6. 如請求項2之方法,其中該內碼包含一錯誤偵測碼,且其中有條件地反轉該所讀取資料之該至少部分包含當該解碼結果等於將該內碼解碼應用於一全1字組之一結果時反轉該所讀取資料之該至少部分,且當該解碼結果無錯誤時不反轉該所讀取資料之該至少部分。
  7. 如請求項2之方法,其中有條件地反轉該所讀取資料之該至少部分包含:當該所讀取經編碼資料之該解碼結果與該所讀取經編碼資料之該經反轉版本之該解碼結果矛盾時,指示不能夠決定是否反轉該所讀取資料。
  8. 一種用於資料儲存之裝置,其包含:一記憶體,其包含記憶體胞之一陣列;以及儲存電路,其經組態以:將資料儲存於該等記憶體胞之一群組中,其係藉由使用至少一外碼及一內碼對該資料進行編碼,且視情況在將該經編碼資料儲存於該等記憶體胞中之前反轉該經編碼資料;自該等記憶體胞讀取該經編碼資料;將內碼解碼應用於該所讀取經編碼資料以產生一解碼結果;以及取決於該內碼之該解碼結果而有條件地反轉該所讀取資料之至少部分。
  9. 如請求項8之裝置,其中該內碼包含其中一有效碼字之反轉並不始終導致另一有效碼字之一碼,且其中該儲存電路經組態以對該所讀取經編碼資料及該所讀取經編碼資料之一經反轉版本中之至少一者進行解碼。
  10. 如請求項9之裝置,其中該儲存電路經組態以對該所讀取經編碼資料及該所讀取經編碼資料之該經反轉版本兩者進行解碼,且僅當該經反轉版本之該解碼結果無錯誤且該所讀取經編碼資料 之該解碼結果有錯誤時才反轉該所讀取資料之該至少部分。
  11. 如請求項9之裝置,其中該儲存電路經組態以與該資料相關地儲存該所儲存資料是否已反轉之一反轉指示,對該反轉指示進行讀取及解碼,且取決於該反轉指示而僅對該所讀取經編碼資料或僅對該所讀取經編碼資料之該經反轉版本進行解碼。
  12. 如請求項11之裝置,其中該儲存電路經組態以當該所讀取經編碼資料之該解碼結果與該反轉指示矛盾時,指示不能夠決定是否反轉該所讀取資料。
  13. 如請求項9之裝置,其中該內碼包含一錯誤偵測碼,且其中該儲存電路經組態以當該解碼結果等於將該內碼解碼應用於一全1字組之一結果時反轉該所讀取資料之該至少部分,且當該解碼結果無錯誤時不反轉該所讀取資料之該至少部分。
  14. 如請求項9之裝置,其中該儲存電路經組態以當該所讀取經編碼資料之該解碼結果與該所讀取經編碼資料之該經反轉版本之該解碼結果矛盾時,指示不能夠決定是否反轉該所讀取資料。
TW103135092A 2013-12-20 2014-10-08 在使用每記憶體胞非整數個位元之類比記憶體胞中資料儲存之管理 TWI516035B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/135,881 US9230655B2 (en) 2013-12-20 2013-12-20 Data storage management in analog memory cells using a non-integer number of bits per cell
US14/135,823 US9171624B2 (en) 2013-12-20 2013-12-20 Management of data storage in analog memory cells using a non-integer number of bits per cell

Publications (2)

Publication Number Publication Date
TW201528692A true TW201528692A (zh) 2015-07-16
TWI516035B TWI516035B (zh) 2016-01-01

Family

ID=53400746

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103135092A TWI516035B (zh) 2013-12-20 2014-10-08 在使用每記憶體胞非整數個位元之類比記憶體胞中資料儲存之管理

Country Status (7)

Country Link
US (4) US9171624B2 (zh)
JP (1) JP6145220B2 (zh)
KR (1) KR101885976B1 (zh)
CN (1) CN105793927B (zh)
DE (1) DE112014005810B8 (zh)
TW (1) TWI516035B (zh)
WO (1) WO2015094452A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI766874B (zh) * 2016-09-02 2022-06-11 香港商阿里巴巴集團服務有限公司 具有軟硬體結合輔助實施法以加強對多格翻轉的抗擾性的高可用性PCIe SSD方法與系統

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646699B2 (en) * 2014-04-30 2017-05-09 Empire Technology Development Llc Differential writing for life extension of portions of a memory device
US9979416B2 (en) * 2014-12-10 2018-05-22 Rambus Inc. Memory controller and method of data bus inversion using an error detection correction code
US10484008B2 (en) * 2017-09-28 2019-11-19 SK Hynix Inc. Memory system with on-the-fly error detection and termination and operating method thereof
JP6910739B2 (ja) * 2018-03-05 2021-07-28 東芝情報システム株式会社 評価解析対象メモリ装置及びメモリ評価解析システム
TWI671750B (zh) * 2018-11-28 2019-09-11 華邦電子股份有限公司 記憶體的控制方法及非暫態電腦可讀媒體
US11811424B2 (en) * 2021-04-05 2023-11-07 Micron Technology, Inc. Fixed weight codewords for ternary memory cells

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1199725B1 (en) 2000-10-13 2010-10-06 STMicroelectronics Srl Method for storing and reading data in a multibit nonvolatile memory with a non-binary number of bits per cell
US6661355B2 (en) * 2000-12-27 2003-12-09 Apple Computer, Inc. Methods and apparatus for constant-weight encoding & decoding
EP1298670B1 (en) * 2001-09-28 2007-03-07 STMicroelectronics S.r.l. Method for storing and reading data in a multilevel nonvolatile memory with a non-binary number of levels, and architecture therefor
US6834017B2 (en) 2002-10-03 2004-12-21 Hewlett-Packard Development Company, L.P. Error detection system for an information storage device
US7069494B2 (en) 2003-04-17 2006-06-27 International Business Machines Corporation Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
JP2005100527A (ja) * 2003-09-25 2005-04-14 Matsushita Electric Ind Co Ltd 半導体不揮発性記憶装置
US7071849B2 (en) 2004-04-04 2006-07-04 Guobiao Zhang Fractional-Bit Systems
US7167109B2 (en) 2005-03-31 2007-01-23 Chenming Hu Hybrid fractional-bit systems
JP2007066375A (ja) 2005-08-30 2007-03-15 Sony Corp ホログラム記録装置、ホログラム記録方法
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7844879B2 (en) 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
CN101405811B (zh) * 2006-01-20 2012-01-04 马维尔国际贸易有限公司 具有编码和信号处理的闪存
US7420841B2 (en) 2006-08-30 2008-09-02 Qimonda Ag Memory device and method for transforming between non-power-of-2 levels of multilevel memory cells and 2-level data bits
KR100766042B1 (ko) * 2006-12-06 2007-10-12 삼성전자주식회사 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
US20080192544A1 (en) * 2007-02-13 2008-08-14 Amit Berman Error correction coding techniques for non-volatile memory
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US7848142B2 (en) 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
US7742335B2 (en) 2007-10-31 2010-06-22 Micron Technology, Inc. Non-volatile multilevel memory cells
KR100857252B1 (ko) 2007-12-27 2008-09-05 (주)인디링스 마모도를 비트 수준에서 평준화하는 플래시 메모리 장치 및플래시 메모리 프로그래밍 방법
US8255758B2 (en) * 2008-01-21 2012-08-28 Apple Inc. Decoding of error correction code using partial bit inversion
US7729166B2 (en) * 2008-07-02 2010-06-01 Mosaid Technologies Incorporated Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
KR101518033B1 (ko) * 2008-11-18 2015-05-06 삼성전자주식회사 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
KR101618313B1 (ko) * 2009-06-15 2016-05-09 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
US8910002B2 (en) * 2009-08-24 2014-12-09 OCZ Storage Solutions Inc. NAND flash-based storage device with built-in test-ahead for failure anticipation
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US20150348633A1 (en) * 2010-02-11 2015-12-03 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of programming nonvolatile memory devices
US8645794B1 (en) * 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI766874B (zh) * 2016-09-02 2022-06-11 香港商阿里巴巴集團服務有限公司 具有軟硬體結合輔助實施法以加強對多格翻轉的抗擾性的高可用性PCIe SSD方法與系統

Also Published As

Publication number Publication date
JP6145220B2 (ja) 2017-06-07
WO2015094452A1 (en) 2015-06-25
JP2017504925A (ja) 2017-02-09
US9613686B2 (en) 2017-04-04
TWI516035B (zh) 2016-01-01
US20170162258A1 (en) 2017-06-08
DE112014005810B8 (de) 2022-08-04
DE112014005810B4 (de) 2022-05-25
KR101885976B1 (ko) 2018-08-06
US20150179263A1 (en) 2015-06-25
CN105793927B (zh) 2018-06-08
US20160012883A1 (en) 2016-01-14
US9799397B2 (en) 2017-10-24
US9171624B2 (en) 2015-10-27
US20150179265A1 (en) 2015-06-25
DE112014005810T5 (de) 2016-10-06
CN105793927A (zh) 2016-07-20
KR20160079055A (ko) 2016-07-05
US9230655B2 (en) 2016-01-05

Similar Documents

Publication Publication Date Title
TWI516035B (zh) 在使用每記憶體胞非整數個位元之類比記憶體胞中資料儲存之管理
US10157013B2 (en) Efficient readout from memory cells using data compression
US8495465B1 (en) Error correction coding over multiple memory pages
JP5620973B2 (ja) アナログメモリセルにおける最適スレッシュホールドのサーチ
US8830746B2 (en) Optimized threshold search in analog memory cells using separator pages of the same type as read pages
US9136015B2 (en) Threshold adjustment using data value balancing in analog memory device
TWI533304B (zh) 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置
US11243838B2 (en) Methods and apparatuses for error correction
US20150317203A1 (en) Code-Based Read Control for Data Storage Devices
US20240086277A1 (en) Nand fast cyclic redundancy check
US20230034098A1 (en) Efficient transfer of hard data and confidence levels in reading a nonvolatile memory