TWI492234B - 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 - Google Patents
讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 Download PDFInfo
- Publication number
- TWI492234B TWI492234B TW103114417A TW103114417A TWI492234B TW I492234 B TWI492234 B TW I492234B TW 103114417 A TW103114417 A TW 103114417A TW 103114417 A TW103114417 A TW 103114417A TW I492234 B TWI492234 B TW I492234B
- Authority
- TW
- Taiwan
- Prior art keywords
- gate voltage
- charge
- memory
- voltage combination
- bit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Microelectronics & Electronic Packaging (AREA)
Description
本發明有關於讀取快閃記憶體(flash memory)中所儲存的資料,尤指一種判斷出快閃記憶體之記憶單元(memory cell)的一電荷散佈參數來讀取快閃記憶體中所儲存之資料的方法與記憶體控制器。
快閃記憶體可透過電子式的抹除(erase)與寫入/程式化(program)以進行資料儲存,並且廣泛地應用於記憶卡(memory card)、固態硬碟(solid-state drive)與可攜式多媒體播放器等等。由於快閃記憶體係為非揮發性(non-volatile)記憶體,因此,不需要額外電力來維持快閃記憶體所儲存的資訊,此外,快閃記憶體可提供快速的資料讀取與較佳的抗震能力,而這些特性也說明了快閃記憶體為何會如此普及的原因。
快閃記憶體可區分為NOR型快閃記憶體與NAND型快閃記憶體。對於NAND型快閃記憶體來說,其具有較短的抹除及寫入時間且每一記憶體單元需要較少的晶片面積,因而相較於NOR型快閃記憶體,NAND型快閃記憶體會允許較高的儲存密度以及較低之每一儲存位元的成本。一般來說,快閃記憶體係以記憶體單元陣列的方式來儲存資料,而記憶體單元是由一浮動閘極電晶體(floating-gate transistor)來加以實作,且每一記憶體單元可透過適當地控制浮動閘極電晶體之浮動閘極上的電荷個數來設定導通該浮動閘極電晶體所實作之該記憶體單元的所需臨界電壓,進而儲存單一個位元的資訊或者一個位元以上的資訊,如此一來,當一或多個預定控制閘極電壓施
加於浮動閘極電晶體的控制閘極之上,則浮動閘極電晶體的導通狀態便會指示出浮動閘極電晶體中所儲存的一或多個二進位數字(binary digit)。
然而,由於某些因素,快閃記憶體單元中原本儲存的電荷的個數
可能會受到影響/擾亂,舉例來說,快閃記憶體中所存在的干擾可能來自於寫入干擾(write/program disturbance)、讀取干擾(read disturbance)及/或保持干擾(retention disturbance)。以具有各自儲存一個位元以上的資訊之記憶體單元的NAND型快閃記憶體為例,一個實體記憶體分頁(physical page)會對應多個邏輯記憶體分頁(logical page),且對其採用一或多個控制閘極電壓來進行讀取。
舉例來說,對於一個用以儲存3個位元之資訊的快閃記憶體單元來說,該快閃記憶體單元會具有分別對應不同電荷個數(或稱不同臨界電壓)之8種狀態(亦即電荷位準)的其中之一,然而,由於寫入/抹除次數(program/erase count,P/E count)及/或資料保留時間(retention time)改變的緣故,快閃記憶體單元中的記憶體單元的臨界電壓分佈(threshold voltage distribution)便會有所改變,因此,使用原本的控制閘極電壓設定(或稱臨界電壓設定)來讀取記憶體單元中所儲存的資訊可能會因為改變後的臨界變壓分佈而無法正確地獲得所儲存的資訊。
因此,本發明的目的之一在於提供一種判斷出快閃記憶體之記憶單元的一電荷散佈參數來讀取快閃記憶體中所儲存之資料的方法與記憶體控制器,以解決上述問題。
依據本發明之一實施例,揭示了一種讀取一快閃記憶體中所儲存之資料的方法。該方法包含有:從複數個預設閘極電壓組合選項中選擇出一初始閘極電壓組合;依據該初始閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元,並讀出複數個位元序列;對該複數個位元序列進行一字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功;若該字碼錯誤更正操作不成功,則判斷出對應該初始閘極電壓組合的一電荷散佈參數;依據一對照
表來決定出對應該電荷散佈參數的一目標閘極電壓組合;以及依據該目標閘極電壓組合來控制該複數個記憶體單元以讀出複數個更新位元序列。
依據本發明之另一實施例,揭示了一種用以讀取一快閃記憶體中
所儲存之資料的記憶體控制器。該記憶體控制器包含有一控制邏輯電路、一接收電路、一資料處理電路以及一儲存單元。該控制邏輯電路用來從複數個預設閘極電壓組合選項中選擇出一初始閘極電壓組合,並依據該初始閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元。該接收電路耦接於該控制邏輯電路,用來於該控制邏輯電路依據該初始閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元時讀出複數個位元序列。該資料處理電路耦接於該接收電路與該控制邏輯電路,用來對該複數個位元序列進行一字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功;若該字碼錯誤更正操作不成功,則判斷出對應該初始閘極電壓組合的一電荷散佈參數。該儲存單元耦接於該資料處理電路與該控制邏輯電路,用來儲存一對照表;其中該控制邏輯電路另依據該對照表來決定出對應該電荷散佈參數的一目標閘極電壓組合以及依據該目標閘極電壓組合來控制該複數個記憶體單元以讀出複數個更新位元序列。
由於本發明所提供的實施例係先判斷出所要讀取的快閃記憶體內
的一電荷散佈參數,再直接利用查表的方式來找出對應該電荷散佈參數的一目標閘極電壓組合來控制該快閃記憶體。如此一來,當該字碼錯誤更正操作不成功時,本發明的記憶體控制器在就可以用比較快的速度找出一正確的閘極電壓組合來控制該快閃記憶體,而不需要再花時間逐一的測試每一個預設的閘極電壓組合選項來找出該正確的閘極電壓組合。
100、800、1300‧‧‧記憶體系統
102、802、1302‧‧‧快閃記憶體
104、804、1304‧‧‧記憶體控制器
502~522、602~608、702~712、1202~1226、1502~1526‧‧‧步驟
1022、8022、13022‧‧‧複數個記憶體單元
1041、8041、13041‧‧‧儲存單元
1042、8042、13042‧‧‧控制邏輯電路
1044、8044、13044‧‧‧接收電路
1046、8046、13046‧‧‧資料處理電路
1041a、8041a、13041a‧‧‧第一對照表
1041b、8041b、13041b‧‧‧第二對照表
1042a、8042a、13042a‧‧‧判斷單元
1042b、8042b、13042b‧‧‧選擇單元
1044a、8044a、13044a‧‧‧儲存裝置
1046a、8046b、13046b‧‧‧設定單元
1046b‧‧‧ECC偵測器
1046c‧‧‧ECC改正器
8044 b‧‧‧軟資訊讀取單元
8046a‧‧‧處理單元
13042c‧‧‧調整單元
13046a‧‧‧比較單元
第1圖係本發明一記憶體系統之第一實施例的示意圖。
第2圖係一實體記憶體分頁的一第一種臨界電壓分佈的示意圖。
第3圖係一實體記憶體分頁的一第二種臨界電壓分佈的示意圖。
第4圖係依據本發明一儲存單元之一實施例示意圖。
第5圖係本發明一記憶體控制器用來讀一取快閃記憶體中所儲存之資料的方法之一實施例流程圖。
第6圖係本發明第5圖的方法的一步驟之一實施例流程圖。
第7圖係本發明開始建立一第二個對照表的內容之方法之一實施例流程圖。
第8圖係本發明一記憶體系統之一第二實施例的示意圖。
第9圖係從一快閃記憶體之一記憶體單元中讀取一最低有效位元的一軟位元的操作示意圖。
第10圖係從一快閃記憶體之一記憶體單元中讀取一中間有效位元的一軟位元的操作示意圖。
第11圖係從一快閃記憶體之一記憶體單元中讀取一最高有效位元的一軟位元的操作示意圖。
第12圖係本發明一記憶體控制器用來讀取一快閃記憶體中所儲存之資料的另一方法之一實施例流程圖。
第13圖係本發明一記憶體系統之一第三實施例的示意圖。
第14圖係本發明一記憶體控制器在讀取一快閃記憶體時之一實施例示意圖。
第15圖係本發明一記憶體控制器用來讀取一快閃記憶體中所儲存之資料的另一方法之一實施例流程圖。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定
的元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區別元件的方式,而是以元件在功能上的差異來作為區別的基準。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。此外,「耦接」一詞在此係包含任何直接及間接的
電氣連接手段。因此,若文中描述一第一裝置電性連接於一第二裝置,則代表該第一裝置可直接連接於該第二裝置,或透過其他裝置或連接手段間接地連接至該第二裝置。
本發明的廣義概念是控制快閃記憶體來針對快閃記憶體之複數個記憶體單元中的每一記憶體單元執行複數次讀取操作(請注意,該複數次讀取操作會使用不同的控制閘極電壓設定,以從每一記憶體單元讀取出具有一預定位元次序的複數個位元來作為一位元序列(bit sequence))、從該複數個記憶體單元中分別讀取出複數個位元序列、依據該複數個位元序列來判定該複數個記憶體單元中的一電荷散佈/擴散特性、依據該電荷散佈/擴散特性以及複數個預設閘極電壓組合選項來決定出一目標閘極電壓組合,以及依據該目標閘極電壓組合來控制該複數個記憶體單元以讀出複數個更新位元序列,並利用該複數個更新位元序列來決定出該複數個記憶體單元的一讀出資訊。進一步的細節將於後詳述。
請注意,本發明之圖式中所繪示的臨界電壓分佈以及後續發明說明中所提到的控制閘極電壓的電壓值僅作為範例說明之用,而非用以作為本發明的限制,此外,為了簡潔起見,讀取NAND型快閃記憶體之實體記憶體分頁中的記憶體單元所儲存的多個位元僅是作為一實施例,用以說明本發明的技術特徵,然而,無論快閃記憶體是NAND型快閃記憶體或是具有其它類型的快閃記憶體(例如NOR型快閃記憶體),只要是採用記憶體單元所讀取之位元序列的二進位數字分佈特性來決定出記憶體單元的讀出資訊,均符合本發明的精神。
請參閱第1圖,其為本發明記憶體系統100之第一實施例的示意圖。記憶體系統100包含有一快閃記憶體102以及一記憶體控制器(memory controller)104,於本實施例中,快閃記憶體102可以是包含複數個實體記憶體分頁P_0、P_1、P_2、...、P_N的NAND型快閃記憶體,其中實體記憶體分頁P_0~P_N中的每一實體記憶體分頁包含有複數個記憶體單元(例如浮
動閘極電晶體)1022。該複數個記憶體單元1022中的每一個記憶體單元係一多層式儲存單元(Multilevel cell,MLC)。舉例來說,對於要被讀取之一目標實體記憶體分頁P_0來說,其包含有記憶體單元M_0~M_K。為了讀取目標實體記憶體分頁P_0之記憶體單元M_0~M_K中所儲存的資料,控制閘極電壓VG_0~VG_N便應該要適當地設定,例如,控制閘極電壓VG_0~VG_N應該要適當地設定以確保實體記憶體分頁P_1~P_N中所有的記憶體單元(浮動閘極記憶體)1022均處於適當的狀態。假若每一記憶體單元1022是用以儲存N個位元(例如,包含最低有效位元(least significant bit,LSB)、中間有效位元(central significant bit,CSB)與最高有效位元(most significant bit,MSB)的3個位元),則快閃記憶體102可將控制閘極電壓VG_0設定為(2N
-1)個電壓準位,以便辨識出目標實體記憶體分頁P_0中每一記憶體單元1022的N個位元。
請參閱第2圖,其為要被讀取之實體記憶體分頁P_0的第一種臨界電壓分佈的示意圖。實體記憶體分頁P_0的記憶體單元M_0~M_K可包含有具有浮動閘極被程式化(programmed)為具有電荷位準L0(亦即(MSB,CSB,LSB)=(1,1,1))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L1(亦即(MSB,CSB,LSB)=(0,1,1))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L2(亦即(MSB,CSB,LSB)=(0,0,1))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L3(亦即(MSB,CSB,LSB)=(1,0,1))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L4(亦即(MSB,CSB,LSB)=(1,0,0))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L5(亦即(MSB,CSB,LSB)=(0,0,0))的記憶體單元、具有浮動閘極被程式化為具有電荷位準L6(亦即(MSB,CSB,LSB)=(0,1,0))的記憶體單元以及具有浮動閘極被程式化為具有電荷位準L7(亦即(MSB,CSB,LSB)=(1,1,0))的記憶體單元。
為了辨識出記憶體單元M_0~M_K的最低有效位元,快閃記憶體102可將控制閘極電壓VG_0設定為第2圖所示之臨界電壓VT_4,接著,實體記憶體分頁P_0中每一記憶體單元的導通狀態便會指示出該記憶體單元所
具有的最低有效位元是”0”或”1”。於本實施例中,當實體記憶體分頁P_0中的一記憶體單元被施加於其控制閘極的臨界電壓VT_4所導通時,快閃記憶體102將會輸出代表其最低有效位元的一個二進位數字”1”;否則,快閃記憶體102將會輸出代表其最低有效位元的另一個二進位數字”0”。
為了辨識出記憶體單元M_0~M_K的中間有效位元,快閃記憶體102可將控制閘極電壓VG_0分別設定為第2圖所示之臨界電壓VT_2與VT_6,同樣地,實體記憶體分頁P_0中每一記憶體單元的導通狀態便會指示出該記憶體單元所具有的中間有效位元是”0”或”1”。於本實施例中,當一記憶體單元會被施加於其控制閘極之臨界電壓VT_2與VT_6中的任一個所導通時,快閃記憶體102將會輸出代表其中間有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_2所導通,但是卻會被施加於其控制閘極之臨界電壓VT_6所導通時,快閃記憶體102將會輸出代表其中間有效位元的一個二進位數字”0”;以及當該記憶體單元除了不會被施加於其控制閘極之臨界電壓VT_2所導通,也不會被施加於其控制閘極之臨界電壓VT_6所導通時,快閃記憶體102將會輸出代表其中間有效位元的一個二進位數字”1”。
為了辨識出記憶體單元M_0~M_K的最高有效位元,快閃記憶體102便將控制閘極電壓VG_0分別設定為第2圖所示之臨界電壓VT_1、VT_3、VT_5與VT_7,同樣地,實體記憶體分頁P_0中每一記憶體單元的導通狀態便會指示出該記憶體單元所具有的最高有效位元是”0”或”1”。於本實施例中,當一記憶體單元會被施加於其控制閘極之臨界電壓VT_1、VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體102將會輸出代表其最高有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1所導通,但是卻會被施加於其控制閘極之臨界電壓VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體102將會輸出代表其最高有效位元的一個二進位數字”0”;當該記憶體單元不會被施加於其控制閘極之臨界電
壓VT_1與VT_3中的任一個所導通,但是卻會被施加於其控制閘極之臨界電壓VT_5與VT_7中的任一個所導通時,快閃記憶體102將會輸出代表其最高有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1、VT_3與VT_5中的任一個所導通,但是卻會被施加於其控制閘極之臨界電壓VT_7所導通時,快閃記憶體102將會輸出代表其最高有效位元的一個二進位數字”0”;以及當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1、VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體102將會輸出代表其最高有效位元的一個二進位數字”1”。
然而,第2圖所示之臨界電壓分佈可能會因為某些因素(例如寫入/讀取次數及/或資料保留時間的增加)的影響而改變為另一個臨界電壓分佈,舉例來說,對應至每一電荷位準之圓形突出狀的分佈可能會變寬及/或產生偏移。請參閱第3圖,其為要被讀取之實體記憶體分頁P_0的第二種臨界電壓分佈的示意圖。由第3圖可得知,臨界電壓分佈係不同於第2圖所示之臨界電壓分佈。將控制閘極電壓VG_0設定為上述的臨界電壓VT_1~VT_7可能無法正確地獲得目標實體記憶體分頁P_0之記憶體單元M_0~M_K的最低有效位元、中間有效位元與最高有效位元,進一步來說,當記憶體單元M_0~M_K具有第3圖所示之臨界電壓分佈時,應該要採用新的臨界電壓VT_1’~VT_7’以便正確地獲得所儲存的資訊,否則的話,施加於記憶體單元M_0~M_K所讀出之碼字(codeword)的錯誤更正(error correction code,ECC)操作便會因為碼字中具有無法更正的(uncorrectable)錯誤而無法成功運行。該碼字的錯誤更正操作係由記憶體控制器104內的一資料處理電路1046來執行。一般而言,記憶體控制器104會另包含有一儲存單元1041,用來儲存一第一對照表1041a,第一對照表1041a用來記錄複數個不同的預設閘極電壓組合選項OP_1~OP_M(例如第一個預設閘極電壓組合選項OP_1為上述的控制閘極電壓VG_0)所分別對應的預設臨界電壓[VT1_1:VT1_7]~[VTM_1:VTM_7],亦即每一個預設閘極電壓組合選項會包含有7(亦即2N
-1個)個臨界電壓準位,如
第4圖所示。第4圖所示係依據本發明儲存單元1041之一實施例示意圖。記憶體控制器104會依序選擇複數個預設閘極電壓組合選項OP_1~OP_M中的每一個預設閘極電壓組合選項來施加於記憶體單元M_0~M_K,以分別獲得儲存在記憶體單元M_0~M_K內的資訊。同時,記憶體控制器104內的資料處理電路1046會對每一個預設閘極電壓組合選項所得讀出的碼字進行一錯誤更正操作,以判斷該個預設閘極電壓組合選項是否會因為碼字中具有無法更正的錯誤而無法成功運行。最後,記憶體控制器104會從該複數個預設閘極電壓組合選項OP_1~OP_M中選擇出一個預設閘極電壓組合選項,該預設閘極電壓組合選項會使得該錯誤更正操作得以完全更正所讀出的碼字中的所有錯誤。然而,透過逐一地利用該複數個預設閘極電壓組合選項OP_1~OP_M中的每一個預設閘極電壓組合選項來施加於記憶體單元M_0~M_K,則需要花較多的時間才能判定出一最終的預設閘極電壓組合選項。因此,於本實施例中,記憶體控制器104是設計來適應性地追蹤記憶體單元M_0~M_K中的一電荷散佈參數,以依據該電荷散佈參數以及複數個預設閘極電壓組合選項OP_1~OP_M來決定出一目標閘極電壓組合OP_T來控制記憶體單元M_0~M_K,並將該電荷散佈參數與其所對應的目標閘極電壓組合OP_T記錄於一對照表中,以更快速讀出複數個更新位元序列(即儲存於記憶體單元M_0~M_K的資訊),並減少或消除記憶體單元M_0~M_K所讀出之碼字中所存在的無法更正的錯誤。
請再次參閱第1圖。記憶體控制器104是用以控制快閃記憶體102的存取(讀取/寫入),並且包含有(但不侷限於)儲存單元1041、一控制邏輯電路1042、一接收電路1044以及一資料處理電路1046。儲存單元1041儲存有第一對照表1041a與一第二對照表1041b。控制邏輯電路1042包含有一判斷單元1042a以及一選擇單元1042b。資料處理電路1046包含有一設定單元1046a。請注意,第1圖僅顯示與本發明之技術特徵有關的元件,亦即,記憶體控制器104亦可包含額外的元件來支援其它的功能。此外,儲存單元1041
可以係設置在控制邏輯電路1042之外或之內的一記憶體。一般來說,當接收到針對目標實體記憶體分頁P_0中記憶體單元M_0~M_K所儲存之資料的一讀取請求(read request)時,控制邏輯電路1042會因應該讀取請求而控制快閃記憶體102來讀取所要求的資料(requested data),接著,當快閃記憶體102成功地辨識出記憶體單元M_0~M_K中每一記憶體單元所儲存的所有位元時,包含有記憶體單元M_0~M_K之已辨識出的位元的讀出資訊便會被接收電路1044所接收。如第1圖所示,接收電路1044具有一儲存裝置(例如一記憶體裝置)1044a,其作為一資料緩衝器以暫存從快閃記憶體102所產生之讀出資訊。如熟習技藝者所知,位於一實體記憶體分頁中的一部份記憶體單元是用來儲存錯誤更正資訊(例如一錯誤更正碼(ECC code)),因此,資料處理電路1046便是用來針對由一實體記憶體分頁所讀取出來的讀出資訊(例如一碼字)進行一錯誤更正操作。於本實施例中,資料處理電路1046(例如一錯誤更正電路)另包含有一錯誤更正偵測器(ECC detector)1046b以及一錯誤更正改正器(ECC corrector)1046c。錯誤更正偵測器1046b是用來檢查讀出資訊的正確性,以藉此偵測任何錯誤位元的存在。當被錯誤更正偵測器1046b所告知時,錯誤更正改正器1046c便會對檢查過的讀出資訊中所發現到的錯誤位元進行更正。然而,當讀出資訊中實際存在之錯誤位元的數量超過了錯誤更正改正器1046c有辦法更正之錯誤位元的最大數量時,錯誤更正改正器1046c便會指示讀出資訊中包含有無法更正的錯誤,因此,控制邏輯電路1042此時將會致能(enable)本發明所提出之臨界電壓分佈追蹤機制,以決定出可通過資料處理電路1046所執行之錯誤更正同位元檢查(ECC parity check)的讀出資訊。
請參閱第5圖,第5圖所示係本發明記憶體控制器104用來讀取快閃記憶體102中所儲存之資料的方法500之一實施例流程圖。倘若大體上可達到相同的結果,並不需要一定照第5圖所示之流程中的步驟順序來進行,且第5圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中。方法500包含有下步驟:
步驟502:記憶體控制器104接收到一讀取請求;步驟504:利用控制邏輯電路1042從複數個預設閘極電壓組合選項OP_1~OP_M中選擇出一初始閘極電壓組合OP_ini;步驟506:利用控制邏輯電路1042依據第一對照表1041a中初始閘極電壓組合OP_ini所對照到的預設臨界電壓(例如[VT1_1:VT1_7])來控制快閃記憶體102中該目標實體記憶體分頁(例如P_0)的複數個記憶體單元M_0~M_K;步驟508:利用接收電路1044讀出複數個位元序列BS_0、BS_1、...、BS_K;步驟510:利用資料處理電路1046對複數個位元序列BS_0、BS_1、...、BS_K進行一字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功,若是,則跳至步驟522,若否,則跳至步驟512;步驟512:利用資料處理電路1046判斷出對應初始閘極電壓組合OP_ini的一電荷散佈參數A_1;步驟514:利用控制邏輯電路1042依據第二對照表1041b來決定出對應電荷散佈參數A_1的一目標閘極電壓組合OP_tar1(例如目標閘極電壓組合OP_tar1可以是OP_2);步驟516:利用控制邏輯電路1042依據目標閘極電壓組合OP_tar1來控制該目標實體記憶體分頁的複數個記憶體單元M_0~M_K以讀出複數個更新位元序列BSU_0、BSU_1、...、BSU_K;步驟518:利用資料處理電路1046對複數個更新位元序列BSU_0、BSU_1、...、BSU_K進行該字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功,若是,則跳至步驟522,若否,則跳至步驟520;步驟520:利用控制邏輯電路1042從第一對照表1041a中依序利用複數個預設閘極電壓組合選項OP_1~OP_M中除了初始閘極電壓組合OP_ini與目標閘極電壓組合OP_tar1之外的其他預設閘極電壓組合來控制快
閃記憶體102中的複數個記憶體單元M_0~M_K,以找出可以使得該字碼錯誤更正操作成功的一目標預設閘極電壓組合,並更新第二對照表1041b中原本的目標閘極電壓組合OP_tar1,跳至步驟522;步驟522:利用資料處理電路1046決定出該目標實體記憶體分頁的複數個記憶體單元M_0~M_K的一讀出資訊。
請再次參照第4圖,依據本發明實施例,儲存單元1041內的第二對照表1041b的第一欄係用來儲存複數個不同的電荷散佈參數A_1~A_N,而第二欄則是用來記錄所對照到不同的目標閘極電壓組合OP_tar1~OP_tarN,其中該些不同的目標閘極電壓組合OP_tar1~OP_tarN是來自預設閘極電壓組合選項OP_1~OP_M。因此,在步驟514中,若依據第二對照表1041b所決定出對應電荷散佈參數A1的目標閘極電壓組合OP_tar1是預設閘極電壓組合選項OP_2的話,則控制邏輯電路1042就會從第一對照表1041a中找出預設閘極電壓組合選項OP_2所對照到的預設臨界電壓[VT2_1:VT2_7])來控制快閃記憶體102中該目標實體記憶體分頁(例如P_0)的複數個記憶體單元M_0~M_K。換句話說,依據本發明實施例,當控制邏輯電路1042原本所選擇的初始閘極電壓組合OP_ini會使得讀出資訊中實際存在之錯誤位元的數量超過了錯誤更正改正器1046c有辦法更正之錯誤位元的最大數量時,資料處理電路1046就會判斷/計算出對應初始閘極電壓組合OP_ini的電荷散佈參數A_1。接著,控制邏輯電路1042就會利用第二對照表1041b來找出對應電荷散佈參數A1的目標閘極電壓組合OP_tar1。由於目標閘極電壓組合OP_tar1是來自預設閘極電壓組合選項OP_1~OP_M其中之一,例如預設閘極電壓組合選項OP_2,因此當控制邏輯電路1042從第二對照表1041b來找出對應電荷散佈參數A1的目標閘極電壓組合OP_tar1後,控制邏輯電路1042就會從第一對照表1041a中找出目標閘極電壓組合OP_tar1(例如預設閘極電壓組合選項OP_2)所對照到的預設臨界電壓[VT2_1:VT2_7])來控制快閃記憶體102中該
目標實體記憶體分頁(例如P_0)的複數個記憶體單元M_0~M_K。
同樣的,接收電路1044會讀出利用目標閘極電壓組合OP_tar1來產生的複數個更新位元序列BSU_0、BSU_1、...、BSU_K。接著,資料處理電路1046會對複數個更新位元序列BSU_0、BSU_1、...、BSU_K再一次的進行該字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功。若讀出資訊中實際存在之錯誤位元的數量沒有超過了錯誤更正改正器1046c有辦法更正之錯誤位元的最大數量,則代表該錯誤更正操作可以完全更正所讀出的碼字中的所有錯誤。因此,資料處理電路1046就會利用該目標閘極電壓組合OP_tar1所讀出的複數個更新位元序列BSU_0、BSU_1、...、BSU_K來決定出該目標實體記憶體分頁的複數個記憶體單元M_0~M_K的一讀出資訊。
反之,若讀出資訊中實際存在之錯誤位元的數量依然超過了錯誤更正改正器1046c有辦法更正之錯誤位元的最大數量,亦即該錯誤更正操作無法完全更正所讀出的碼字中的所有錯誤,則代表第二對照表1041b中電荷散佈參數A1與目標閘極電壓組合OP_tar1之間的對照關係有誤,且目標閘極電壓組合OP_tar1需要被更新為另一個目標閘極電壓組合,以使得該錯誤更正操作可以完全更正所讀出的碼字中的所有錯誤,如第6圖所示。第6圖所示係本發明方法500中的步驟520之一實施例流程圖。倘若大體上可達到相同的結果,並不需要一定照第6圖所示之流程中的步驟順序來進行,且第6圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中。步驟520包含有下步驟:步驟602:利用控制邏輯電路1042的選擇單元1042b從第一對照表1041a中依序利用複數個預設閘極電壓組合選項OP_1~OP_M中除了初始閘極電壓組合OP_ini與目標閘極電壓組合OP_tar1之外的一其他預設閘極電壓組合來控制快閃記憶體102中的複數個記憶體單元M_0~M_K;步驟604:利用接收電路1044依序讀出對應該其他預設閘極電壓組合的複數個其他位元序列;
步驟606:利用資料處理電路1046依序對該複數個其他位元序列進行該字碼錯誤更正操作,一直到該字碼錯誤更正操作成功為止;步驟608:利用資料處理電路1046的設定單元1046a將對應成功的該字碼錯誤更正操作的該其他預設閘極電壓組合設定為對應該電荷散佈參數A_1的該目標閘極電壓組合OP_tar1,並將更新後的目標閘極電壓組合OP_tar1來更新第二對照表1041b中對應該電荷散佈參數A_1的該原本的目標閘極電壓組合OP_tar1。
舉例而言,若初始閘極電壓組合OP_ini是預設閘極電壓組合選項OP_1以及原本的目標閘極電壓組合OP_tar1是預設閘極電壓組合選項OP_2,則控制邏輯電路1042的選擇單元1042b會從第一對照表1041a中的預設閘極電壓組合選項OP_3開始,依序地利用預設閘極電壓組合來控制快閃記憶體102中的複數個記憶體單元M_0~M_K。此外,接收電路1044也會依序讀出對應該其他預設閘極電壓組合的複數個其他位元序列。同時,資料處理電路1046會依序對該複數個其他位元序列進行該字碼錯誤更正操作。舉例而言,若當控制邏輯電路1042利用預設閘極電壓組合選項OP_3來控制複數個記憶體單元M_0~M_K時所產生的該複數個其他位元序列會使得該字碼錯誤更正操作成功,則代表在第二對照表1041b中,原本對應該電荷散佈參數A_1的該預設閘極電壓組合選項OP_2需要被更新為預設閘極電壓組合選項OP_3。如此一來,若資料處理電路1046在下一次又得出另一組複數個位元序列的電荷散佈參數為A_1時,控制邏輯電路1042就會直接利用從第二對照表1041b來找出對應電荷散佈參數A1的目標閘極電壓組合OP_tar1(亦即預設閘極電壓組合選項OP_3)來控制對應的複數個記憶體單元。
因此,從上述有關於第5圖與第6圖的操作可以得知儲存單元1041內的第二對照表1041b的對照關係並不是一成不變的,而是會隨著複數個記憶體單元M_0~M_K內的電荷漂移狀況而被更新。進一步而言,隨著快閃記憶體102被寫入/讀取次數及/或資料保留時間的增加,複數個記憶體單元
M_0~M_K內的電荷分佈可能再次出現漂移/偏移的狀況,進而使得第二對照表1041b中對應電荷散佈參數A1的目標閘極電壓組合OP_tar1不再是最佳的臨界電壓組合。因此,控制邏輯電路1042就會從第一對照表1041a中重新尋找出對應該電荷散佈參數A1具有最佳的臨界電壓組合,亦即另一目標閘極電壓組合,來更新第二對照表1041b。以此類推,第二對照表1041b中的每一個電荷散佈參數A_1~A_N所對照到的目標閘極電壓組合OP_tar1~OP_tarN都有可能被更新為新的目標閘極電壓組合。因此,本實施例的第二對照表1041b的對照關係會隨著快閃記憶體102被寫入/讀取次數及/或資料保留時間的增加而被自動更新。
此外,在第5圖的流程圖中,雖然本實施例的方法500在步驟504會先從第一對照表1041a中選擇出對應初始閘極電壓組合OP_ini來的預設臨界電壓來控制複數個記憶體單元M_0~M_K,但其並不為本發明的限制所在。本發明的方法500也可以跳過步驟504~510,而直接依據複數個記憶體單元M_0~M_K的一電荷散佈參數來從第二對照表1041b中找到對照的目標閘極電壓組合來讀取複數個記憶體單元M_0~M_K內的資訊。
再者,雖然本實施例在第4圖所示的儲存單元1041會儲存有有兩個對照表(亦即第一對照表1041a與第二對照表1041b),但其並不為本發明的限制所在。利用兩個對照表只是為了方便描述本發明的技術特徵,此領域具有通常知識者應可瞭解只用一個對照表亦可以達成相同的目的,故其細部技術特徵在此不另贅述。
另一方面,在第1圖與第4圖中,雖然第二對照表1041b中看似已預先儲存了複數個電荷散佈參數A_1~A_N以及其所對照到的複數個目標閘極電壓組合OP_tar1~OP_tarN,但此舉只為了方便描述本發明的技術特徵。進一步而言,此領域具有通常知識者應可瞭解當快閃記憶體102與記憶體控制器104剛被製造出來時,第二對照表1041b的內容其實是空的,只有第一對照表1041a的內容才是製造商預設的。但是,隨著快閃記憶體102被寫入/
讀取次數及/或資料保留時間的增加,複數個記憶體單元M_0~M_K內的電荷分佈出現漂移/偏移的狀況時,利用初始閘極電壓組合OP_ini所讀出來的複數個位元序列BS_0、BS_1、...、BS_K已無法成功地執行該字碼錯誤更正操作。此時,資料處理電路1046才會依據複數個位元序列BS_0、BS_1、...、BS_K判斷出對應初始閘極電壓組合OP_ini的第一個電荷散佈參數A_1(即步驟512)。接著,控制邏輯電路1042才會從第一對照表1041a中依序利用複數個預設閘極電壓組合選項OP_1~OP_M中除了初始閘極電壓組合OP_ini之外的其他預設閘極電壓組合來控制快閃記憶體102中的複數個記憶體單元M_0~M_K,以找出可以使得該字碼錯誤更正操作成功的一目標預設閘極電壓組合,並將該第一個電荷散佈參數A_1以及對應該第一個電荷散佈參數A_1的第一個目標閘極電壓組合OP_tar1寫入第二個對照表1041b中,如第7圖所示。第7圖所示係本發明方法500中開始建立第二個對照表1041b的內容之方法700之一實施例流程圖。倘若大體上可達到相同的結果,並不需要一定照第7圖所示之流程中的步驟順序來進行,且第7圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中。步驟700包含有下步驟:步驟702:利用控制邏輯電路1042的判斷單元1042a來判斷出第二對照表1041b是否包含有電荷散佈參數A_1以及對應電荷散佈參數A_1的目標閘極電壓組合OP_tar1,若是,則跳至步驟704,若否,則跳至步驟706;步驟704:利用控制邏輯電路1042從第二對照表1041b中讀出對應電荷散佈參數A_1的目標閘極電壓組合OP_tar1,跳至第5圖的步驟516;步驟706:利用控制邏輯電路1042的選擇單元1042b從第一對照表1041a中依序利用複數個預設閘極電壓組合選項OP_1~OP_M中除了初始閘極電壓組合OP_ini之外的其他預設閘極電壓組合來控制快閃記憶體102中的複數個記憶體單元M_0~M_K;步驟708:利用接收電路1044依序讀出對應該其他預設閘極電壓組合的複數個其他位元序列;
步驟710:利用資料處理電路1046依序對該複數個其他位元序列進行該字碼錯誤更正操作,一直到該字碼錯誤更正操作成功為止;步驟712:利用資料處理電路1046的設定單元1046a將對應成功的該字碼錯誤更正操作的該其他預設閘極電壓組合設定為對應該電荷散佈參數A_1的該目標閘極電壓組合OP_tar1,並將目標閘極電壓組合OP_tar1寫入第二對照表1041b中對應該電荷散佈參數A_1的欄位。
同樣的,若資料處理電路1046依據複數個位元序列BS_0、BS_1、...、BS_K判斷出對應初始閘極電壓組合OP_ini的電荷散佈參數係另一個電荷散佈參數(例如A_2),則控制邏輯電路1042也是執行上述的步驟704~712來找出對應該第二個電荷散佈參數A_2的第二個目標閘極電壓組合寫OP_tar2,並將該第二個目標閘極電壓組合OP_tar2寫入第二對照表1041b中對應該第二個電荷散佈參數A_2的欄位。如此一來,隨著快閃記憶體102被寫入/讀取次數及/或資料保留時間的增加,第二對照表1041b的複數個不同的電荷散佈參數A_1~A_N與目標閘極電壓組合OP_tar1~OP_tarN之間的對照關係就可以自動的被建立起來了。此後,若資料處理電路1046對複數個位元序列BS_0、BS_1、...、BS_K所執行該字碼錯誤更正操作不成功時,則資料處理電路1046就會判斷出對應複數個位元序列BS_0、BS_1、...、BS_K的一電荷散佈參數,接著就直接依據該電荷散佈參數從第二對照表1041b中找到對應的一目標閘極電壓組合,而不需要重新逐個測試第一對照表1041a中的複數個預設閘極電壓組合選項OP_1~OP_M。如此一來,本發明的記憶體控制器104就可以更快速地讀出快閃記憶體102中儲存於記憶體單元M_0~M_K的資訊,並減少或消除記憶體單元M_0~M_K所讀出之碼字中所存在的無法更正的錯誤。
從上述有關於記憶體系統100的操作可以得知本發明並未限制儲存在記憶體單元M_0~M_K內電荷的電荷散佈參數為何種參數。換句話說,任何可以代表/指示儲存在記憶體單元M_0~M_K內電荷的漂移/偏移/分佈狀
況的參數均屬於本發明的範疇所在。舉例而言,在本發明的其中之一實施例中(其適用於第1圖所揭示的記憶體系統100),該電荷散佈參數係執行該字碼錯誤更正操作後所產生的一錯誤症狀矩陣(syndrome-weight)。換句話說,上述第二對照表1041b的第一欄係用來儲存複數個不同的錯誤症狀矩陣A_1~A_N,而第二欄則是用來記錄所對照到不同的目標閘極電壓組合OP_tar1~OP_tarN。請注意,在本實施例中,資料處理電路1046對複數個位元序列BS_0、BS_1、...、BS_K所執行的該字碼錯誤更正操作係一低密度同位檢查(low density parity-check,LDPC)操作。當該資料處理電路1046對複數個位元序列BS_0、BS_1、...、BS_K執行該低密度同位檢查時所產生的一錯誤症狀矩陣內的位元值(bit value)為1的個數越多時,則代表讀出資訊中實際存在之錯誤位元的數量越多。因此,一錯誤症狀矩陣就可以用來代表/指示儲存在記憶體單元M_0~M_K內電荷的漂移/偏移/分佈狀況。請注意,本實施例所採用的電荷散佈參數(即該錯誤症狀矩陣)是對複數個位元序列BS_0、BS_1、...、BS_K執行該字碼錯誤更正操作之後所產生的資料中所擷取出來的,但是這並不作為本發明的限制所在。換句話說,本發明的電荷散佈參數也是可以直接從接收電路1044所接收到的複數個位元序列BS_0、BS_1、...、BS_K中擷取/分析得出,而不需利用該字碼錯誤更正操作所產生的資料中得出。
因此,在本發明的另一實施例中,該電荷散佈參數係來自一快閃記憶體的一軟資訊(soft information)。請參閱第8圖,其為本發明記憶體系統800之第二實施例的示意圖。記憶體系統800包含有一快閃記憶體802以及一記憶體控制器804,於本實施例中,快閃記憶體802可以是包含複數個實體記憶體分頁P_0、P_1、P_2、...、P_N的NAND型快閃記憶體,其中實體記憶體分頁P_0~P_N中的每一實體記憶體分頁包含有複數個記憶體單元(例如浮動閘極電晶體)8022,且分別由控制閘極電壓VG_0~VG_N來控制。記憶體控制器804是用以控制快閃記憶體802的存取(讀取/寫入),並且包含
有(但不侷限於)儲存單元8041、一控制邏輯電路8042、一接收電路8044以及一資料處理電路8046。儲存單元8041儲存有第一對照表8041a與一第二對照表8041b。控制邏輯電路8042包含有一判斷單元8042a以及一選擇單元8042b。接收電路8044包含有一儲存裝置(例如一記憶體裝置)8044a以及一軟資訊讀取單元8044b。資料處理電路8046包含有一處理單元8046a以及一設定單元8046b。請注意,相較於第1圖所示的實施例,當本實施記憶體控制器804利用第一對照表8041a中的一預設閘極電壓組合選項(例如OP_1)來讀取快閃記憶體802中的複數個記憶體單元M_0~M_K的資訊時,本實施例的接收電路8044不只會讀出複數個位元序列BS_0、BS_1、...、BS_K,還會讀取到相對於該預設閘極電壓組合選項(即OP_1)的一軟資訊。
一般而言,若該記憶體單元所儲存的位元值為0或1(即單層式儲存單元(Single level cell,SLC)),所謂的軟資訊就是指當記憶體控制器804利用一個臨界電壓來讀取該記憶體單元時,接收電路4044除了會接收到該位元值之外,接收電路4044還會接收到兩個位元(或一個位元),該兩個位元的值是用來表示儲存在該記憶體單元內的位元值的強弱。舉例而言,若接收電路4044接收到該位元值為0,而該兩個位元的值為11,則代表該位元值為一個很強(亦即可靠度(reliability)很高)的0值,若該兩個位元的值為00,則代表該位元值為一個很弱(亦即可靠度很弱)的0值。因此,儲存在該記憶體單元內的位元值的強弱可以分成四個等級,即最強的11、第二強的10、第三強的01以及最弱的00。若該兩個位元的值是11,則代表記憶體控制器804所設置的該臨界電壓為最佳值,若該兩個位元的值是10,則代表記憶體控制器804所設置的該臨界電壓為第二佳,以此類推。因此,當該兩個位元的值是00時,代表記憶體控制器804所設置的該臨界電壓離其最佳值最遠。換句話說,當該兩個位元的值是00時,代表該記憶體單元內電荷分佈的偏移/漂移最大。請注意,此段落是針對該記憶體單元為單層式儲存單元時的軟資訊的讀取狀況,以下圖示與段落則是敘述多層式儲存單元(Multilevel cell,MLC)時的軟資
訊讀取狀況。
請參閱第9圖,其為從快閃記憶體802之一記憶體單元中讀取一最低有效位元的一軟位元(亦即軟資訊數值)的操作示意圖。依據第2圖與第3圖所示之臨界電壓分布的範例,具有電荷位準L0~L3中任一個電荷位準的記憶體單元將會儲存LSB=1,以及具有電荷位準L4~L7中任一個電荷位準的記憶體單元則會儲存LSB=0。以第8圖的記憶體單元M_0為例,若記憶體單元M_0所儲存的位元是(1,0,1),亦即(MSB,CSB,LSB)=(1,0,1),因此當記憶體控制器804讀取記憶體單元M_0的LSB時,接收電路8044所讀取到的值將會是位元1。換句話說,儲存在記憶體單元M_0內的電荷分佈是電荷位準L3,如第9圖所示。請注意,在第9圖中,實線所表示的是記憶體單元M_0內電荷位準L3的電荷分佈,而其他用虛線所表示的曲線僅是用來示意其他電荷位準L0~L2、L4~L7的電荷分佈參考位置,其並不是記憶體單元M_0內的電荷分佈。此時,記憶體控制器804用來讀取記憶體單元M_0內的LSB的位元值的臨界電壓VT_4’有可能會落在四個可能的電壓範圍902a~902d。若臨界電壓VT_4’落在電壓範圍902a時,則代表儲存在記憶體單元M_0內的電荷會全部被讀取出來。換言之,若臨界電壓VT_4’落在電壓範圍902a時,則代表從記憶體單元M_0內讀出來的位元值的可靠度最高,因此對應於記憶體單元M_0的LSB的軟資訊的該兩個位元的值就是11。同理,若臨界電壓VT_4’落在電壓範圍902b時,代表從記憶體單元M_0內讀出來的位元值的可靠度為第二高,因此對應於記憶體單元M_0的LSB的軟資訊的該兩個位元的值就是10。若臨界電壓VT_4’落在電壓範圍902c時,代表從記憶體單元M_0內讀出來的位元值的可靠度為第三高,因此對應於記憶體單元M_0的LSB的軟資訊的該兩個位元的值就是01。若臨界電壓VT_4’落在電壓範圍902d時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的LSB的軟資訊的該兩個位元的值就是00。因此,當記憶體控制器804利用一臨界電壓來讀取一記憶體單元的一個位元時,除了儲存
在該記憶體單元內的位元值之外,記憶體控制器804還會得到對應於該位元值的該軟資訊,以用來判斷該位元值的可靠度。請注意,在本實施例中,記憶體控制器804是利用兩個位元(即上述的四個可能的電壓範圍902a~902d)來表示該所讀出LSB位元值的強弱,但此並不作為本發明的限制所在。在其他實施例中,也可以用一個位元或三個位元來表示該所讀出LSB位元值的強弱。
此外,在第9圖中,雖然上述實施例是以記憶體單元M_0內所儲存的電荷分佈是電荷位準L3,但是若記憶體單元M_0內所儲存的電荷分佈是電荷位準L4的話(亦即(MSB,CSB,LSB)=(1,0,0)),則臨界電壓VT_4’落在電壓範圍902d時,則代表從記憶體單元M_0內讀出來的位元值(即LSB=0)的可靠度最高,因此對應於記憶體單元M_0的LSB的軟資訊的該兩個位元的值就是11。同理,若臨界電壓VT_4’落在電壓範圍902c時,代表從記憶體單元M_0內讀出來的位元值的可靠度為第二高,因此對應於記憶體單元M_0的LSB的軟資訊的該兩個位元的值就是10。若臨界電壓VT_4’落在電壓範圍902b時,代表從記憶體單元M_0內讀出來的位元值的可靠度為第三高,因此對應於記憶體單元M_0的LSB的軟資訊的該兩個位元的值就是01。若臨界電壓VT_4’落在電壓範圍902a時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的LSB的軟資訊的該兩個位元的值就是00。
請注意,當記憶體控制器804讀取記憶體單元M_0的LSB時,儲存在記憶體單元M_0內的電荷分佈當然也是有可能是電荷位準L0~L2、L5~L7中之一,此時無論臨界電壓VT_4’落在電壓範圍902a~902d的哪一個範圍都可以成功地讀出電荷位準L0~L2、L5~L7中的LSB位元值,如第9圖所示。此領域具有通常知識者應可瞭解其細部操作原理,故在此不另贅述。
請參閱第10圖,其為從快閃記憶體802之一記憶體單元中讀取一中間有效位元的一軟位元(亦即軟資訊數值)的操作示意圖。依據第2圖與第3
圖所示之臨界電壓分布的範例,具有電荷位準L0、L1、L6、L7中任一個電荷位準的記憶體單元將會儲存CSB=1,以及具有電荷位準L2~L5中任一個電荷位準的記憶體單元則會儲存CSB=0。以第9圖的記憶體單元M_0為例,若記憶體單元M_0所儲存的位元是(0,1,1),亦即(MSB,CSB,LSB)=(0,1,1),因此當記憶體控制器804讀取記憶體單元M_0的CSB時,接收電路8044所讀取到的值將會是位元1。換句話說,儲存在記憶體單元M_0內的電荷分佈是電荷位準L1,如第10圖所示。請注意,在第10圖中,實線所表示的是記憶體單元M_0內電荷位準L1的電荷分佈,而其他用虛線所表示的曲線僅是用來示意其他電荷位準L0、L2~L7的電荷分佈參考位置,其並不是記憶體單元M_0內的電荷分佈。此時,記憶體控制器804用來讀取記憶體單元M_0內的CSB的位元值的臨界電壓VT_2’有可能會落在兩個可能的電壓範圍1002a~1002b。若臨界電壓VT_2’落在電壓範圍1002a時,則代表儲存在記憶體單元M_0內的電荷會全部被讀取出來。換言之,若臨界電壓VT_2’落在電壓範圍1002a時,則代表從記憶體單元M_0內讀出來的位元值的可靠度最高,因此對應於記憶體單元M_0的CSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_2’落在電壓範圍1002b時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的CSB的軟資訊的該單一個位元的值就是0。因此,當記憶體控制器804利用一臨界電壓來讀取一記憶體單元的一個位元時,除了儲存在該記憶體單元內的位元值之外,記憶體控制器804還會得到對應於該位元值的該軟資訊,以用來判斷該位元值的可靠度。請注意,在本實施例中,記憶體控制器804是利用一個位元(即上述的兩個可能的電壓範圍1002a~1002b)來表示該所讀出CSB位元值的強弱,但此並不作為本發明的限制所在。在其他實施例中,也可以用兩個位元或三個位元來表示該所讀出CSB位元值的強弱。
此外,在第10圖中,雖然上述實施例是以記憶體單元M_0內所儲存的電荷分佈是電荷位準L1,但是若記憶體單元M_0內所儲存的電荷分
佈是電荷位準L2的話(亦即(MSB,CSB,LSB)=(0,0,1)),則臨界電壓VT_2’落在電壓範圍1002b時,則代表從記憶體單元M_0內讀出來的位元值(即CSB=0)的可靠度最高,因此對應於記憶體單元M_0的CSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_2’落在電壓範圍1002a時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的CSB的軟資訊的該單一個位元的值就是0。
再者,若記憶體單元M_0內所儲存的電荷分佈是電荷位準L5的話(亦即(MSB,CSB,LSB)=(0,0,0)),則臨界電壓VT_6’落在電壓範圍1002c時,則代表從記憶體單元M_0內讀出來的位元值(即CSB=0)的可靠度最高,因此對應於記憶體單元M_0的CSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_6’落在電壓範圍1002d時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的CSB的軟資訊的該單一個位元的值就是0。
此外,若記憶體單元M_0內所儲存的電荷分佈是電荷位準L6的話(亦即(MSB,CSB,LSB)=(0,1,0)),則臨界電壓VT_6’落在電壓範圍1002d時,則代表從記憶體單元M_0內讀出來的位元值(即CSB=1)的可靠度最高,因此對應於記憶體單元M_0的CSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_6’落在電壓範圍1002c時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的CSB的軟資訊的該單一個位元的值就是0。
請注意,當記憶體控制器804讀取記憶體單元M_0的CSB時,儲存在記憶體單元M_0內的電荷分佈當然也是有可能是電荷位準L0、L3~L4、L7中之一,此時無論臨界電壓VT_2’落在電壓範圍1002a~1002b的哪一個範圍以及無論臨界電壓VT_6’落在電壓範圍1002c~1002d的哪一個範圍,記憶體控制器804都可以成功地讀出電荷位準L0、L3~L4、L7中的CSB位元值,如第10圖所示。此領域具有通常知識者應可瞭解其細部操作原理,
故在此不另贅述。
請參閱第11圖,其為從快閃記憶體802之一記憶體單元中讀取一最高有效位元的一軟位元(亦即軟資訊數值)的操作示意圖。依據第2圖與第3圖所示之臨界電壓分布的範例,具有電荷位準L0、L3、L4、L7中任一個電荷位準的記憶體單元將會儲存MSB=1,以及具有電荷位準L1、L2、L5、L6中任一個電荷位準的記憶體單元則會儲存MSB=0。以第11圖的記憶體單元M_0為例,若記憶體單元M_0所儲存的位元是(1,1,1),亦即(MSB,CSB,LSB)=(1,1,1),因此當記憶體控制器804讀取記憶體單元M_0的MSB時,接收電路8044所讀取到的值將會是位元1。換句話說,儲存在記憶體單元M_0內的電荷分佈是電荷位準L0,如第11圖所示。請注意,在第11圖中,實線所表示的是記憶體單元M_0內電荷位準L0的電荷分佈,而其他用虛線所表示的曲線僅是用來示意其他電荷位準L1~L7的電荷分佈參考位置,其並不是記憶體單元M_0內的電荷分佈。此時,記憶體控制器804用來讀取記憶體單元M_0內的MSB的位元值的臨界電壓VT_1’有可能會落在兩個可能的電壓範圍1102a~1102b。若臨界電壓VT_1’落在電壓範圍1102a時,則代表儲存在記憶體單元M_0內的電荷會全部被讀取出來。換言之,若臨界電壓VT_1’落在電壓範圍1102a時,則代表從記憶體單元M_0內讀出來的位元值的可靠度最高,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_1’落在電壓範圍1102b時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是0。因此,當記憶體控制器804利用一臨界電壓來讀取一記憶體單元的一個位元時,除了儲存在該記憶體單元內的位元值之外,記憶體控制器804還會得到對應於該位元值的該軟資訊,以用來判斷該位元值的可靠度。請注意,在本實施例中,記憶體控制器804是利用一個位元(即上述的兩個可能的電壓範圍1102a~1102b)來表示該所讀出MSB位元值的強弱,但此並不作為本發明的限制所在。在其他實施例
中,也可以用兩個位元或三個位元來表示該所讀出MSB位元值的強弱。
此外,在第11圖中,雖然上述實施例是以記憶體單元M_0內所儲存的電荷分佈是電荷位準L0,但是若記憶體單元M_0內所儲存的電荷分佈是電荷位準L1的話(亦即(MSB,CSB,LSB)=(0,1,1)),則臨界電壓VT_1’落在電壓範圍1102b時,則代表從記憶體單元M_0內讀出來的位元值(即MSB=0)的可靠度最高,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_1’落在電壓範圍1102a時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是0。
再者,若記憶體單元M_0內所儲存的電荷分佈是電荷位準L2的話(亦即(MSB,CSB,LSB)=(0,0,1)),則臨界電壓VT_3’落在電壓範圍1102c時,則代表從記憶體單元M_0內讀出來的位元值(即MSB=0)的可靠度最高,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是1。
同理,若臨界電壓VT_3’落在電壓範圍1102d時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是0。
若記憶體單元M_0內所儲存的電荷分佈是電荷位準L3的話(亦即(MSB,CSB,LSB)=(1,0,1)),則臨界電壓VT_3’落在電壓範圍1102d時,則代表從記憶體單元M_0內讀出來的位元值(即MSB=1)的可靠度最高,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_3’落在電壓範圍1102c時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是0。
若記憶體單元M_0內所儲存的電荷分佈是電荷位準L4的話(亦即(MSB,CSB,LSB)=(1,0,0)),則臨界電壓VT_5’落在電壓範圍1102e時,則代表從記憶體單元M_0內讀出來的位元值(即MSB=1)的可靠度最高,因此對
應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_5’落在電壓範圍1102f時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是0。
若記憶體單元M_0內所儲存的電荷分佈是電荷位準L5的話(亦即(MSB,CSB,LSB)=(0,0,0)),則臨界電壓VT_5’落在電壓範圍1102f時,則代表從記憶體單元M_0內讀出來的位元值(即MSB=0)的可靠度最高,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_5’落在電壓範圍1102e時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是0。
若記憶體單元M_0內所儲存的電荷分佈是電荷位準L6的話(亦即(MSB,CSB,LSB)=(0,1,0)),則臨界電壓VT_7’落在電壓範圍1102g時,則代表從記憶體單元M_0內讀出來的位元值(即MSB=0)的可靠度最高,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_7’落在電壓範圍1102h時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是0。
若記憶體單元M_0內所儲存的電荷分佈是電荷位準L7的話(亦即(MSB,CSB,LSB)=(1,1,0)),則臨界電壓VT_7’落在電壓範圍1102h時,則代表從記憶體單元M_0內讀出來的位元值(即MSB=1)的可靠度最高,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是1。同理,若臨界電壓VT_7’落在電壓範圍1102g時,代表從記憶體單元M_0內讀出來的位元值的可靠度為最低,因此對應於記憶體單元M_0的MSB的軟資訊的該單一個位元的值就是0。
請參閱第12圖,第12圖所示係本發明記憶體控制器804用來讀
取快閃記憶體802中所儲存之資料的方法1200之一實施例流程圖。倘若大體上可達到相同的結果,並不需要一定照第12圖所示之流程中的步驟順序來進行,且第12圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中。方法1200包含有下步驟:步驟1202:記憶體控制器804接收到一讀取請求;步驟1204:利用控制邏輯電路8042從複數個預設閘極電壓組合選項OP_1~OP_M中選擇出一初始閘極電壓組合OP_ini;步驟1206:利用控制邏輯電路8042依據第一對照表8041a中初始閘極電壓組合OP_ini所對照到的預設臨界電壓(例如[VT1_1:VT1_7])來控制快閃記憶體802中該目標實體記憶體分頁(例如P_0)的複數個記憶體單元M_0~M_K;步驟1208:利用接收電路8044讀出複數個位元序列BS_0、BS_1、...、BS_K;步驟1210:利用軟資訊讀取單元8044b來讀取出對應初始閘極電壓組合OP_ini的該軟資訊;步驟1212:利用資料處理電路8046對複數個位元序列BS_0、BS_1、...、BS_K進行一字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功,若是,則跳至步驟1226,若否,則跳至步驟1214;步驟1214:利用資料處理電路8046的處理單元8046a來依據該軟資訊來判斷出複數個位元序列BS_0、BS_1、...、BS_K中對應到一最弱位元(亦即可靠度最低)的一個數;步驟1216:利用設定單元8046b來將該個數設定為對應初始閘極電壓組合OP_ini的電荷散佈參數A_1;步驟1218:利用控制邏輯電路8042依據第二對照表8041b來決定出對應電荷散佈參數A_1的一目標閘極電壓組合OP_tar1(例如目標閘極電壓組合OP_tar1可以是OP_2);
步驟1220:利用控制邏輯電路8042依據目標閘極電壓組合OP_tar1來控制該目標實體記憶體分頁的複數個記憶體單元M_0~M_K以讀出複數個更新位元序列BSU_0、BSU_1、...、BSU_K;步驟1222:利用資料處理電路8046對複數個更新位元序列BSU_0、BSU_1、...、BSU_K進行該字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功,若是,則跳至步驟1226,若否,則跳至步驟1224;步驟1224:利用控制邏輯電路8042從第一對照表8041a中依序利用複數個預設閘極電壓組合選項OP_1~OP_M中除了初始閘極電壓組合OP_ini與目標閘極電壓組合OP_tar1之外的其他預設閘極電壓組合來控制快閃記憶體802中的複數個記憶體單元M_0~M_K,以找出可以使得該字碼錯誤更正操作成功的一目標預設閘極電壓組合,並更新第二對照表8041b中原本的目標閘極電壓組合OP_tar1,跳至步驟1226;步驟1226:利用資料處理電路8046決定出該目標實體記憶體分頁的複數個記憶體單元M_0~M_K的一讀出資訊。
請注意,為了簡化起見,本實施例的記憶體系統800並未繪示出儲存單元8041的結構。由於本實施例的記憶體系統800的儲存單元8041內的第一對照表8041a與第二對照表8041b係相似於第4圖的儲存單元1041分別的第一對照表1041a與第二對照表1041b,因此第4圖的儲存單元1041亦可以適用於記憶體系統800的儲存單元8041。在閱讀有關於記憶體系統800的技術特徵時,儲存單元8041內的第一對照表8041a與第二對照表8041b亦可請分別參照儲存單元1041的第一對照表1041a與第二對照表1041b。
此外,本實施例的記憶體系統800與第一實施例的記憶體系統100之間的差別在於記憶體系統800的第二對照表8041b內第一欄所儲存的複數個電荷散佈參數A_1~A_N是複數個最弱位元的個數,而不是複數個錯誤症狀矩陣。除了如何判斷出複數個電荷散佈參數A_1~A_N的技術特徵之外,記憶體系統800與記憶體系統100的操作流程基本上是大同小異的。因此,
上述第6圖中所教導用來自動更新第二對照表1041b中對應一電荷散佈參數的一原本的目標閘極電壓組合的方法也適用於記憶體系統800,此領域具有通常知識者應可瞭解其對應的操作流程,故在此不另贅述。
同樣的,由於當快閃記憶體802與記憶體控制器804剛被製造出來時,第二對照表8041b的內容其實是空的,因此上述第7圖中所教導用來開始建立第二對照表1041b中對應一電荷散佈參數(亦即最弱位元的個數)的一目標閘極電壓組合的方法也適用於記憶體系統800,此領域具有通常知識者應可瞭解其對應的操作流程,故在此不另贅述。
因此,依據本實施記憶體系統800,當該字碼錯誤更正操作不成功時,記憶體控制器804會判斷出所要讀取的複數個記憶體單元M_0~M_K的一軟資訊中對應最弱位元的個數,再據以從第二對照表8041b中直接找出對應該個數的目標閘極電壓組合OP_tar1來控制複數個記憶體單元M_0~M_K。
在本發明的另一實施例中,該電荷散佈參數係來自複數個位元序列BS_0、BS_1、...、BS_K與複數個調整後位元序列BSA_0、BSA_1、...、BSA_K之間的一位元值變化量。請參閱第13圖,其為本發明記憶體系統1300之一第三實施例的示意圖。記憶體系統1300包含有一快閃記憶體1302以及一記憶體控制器1304,於本實施例中,快閃記憶體1302可以是包含複數個實體記憶體分頁P_0、P_1、P_2、...、P_N的NAND型快閃記憶體,其中實體記憶體分頁P_0~P_N中的每一實體記憶體分頁包含有複數個記憶體單元(例如浮動閘極電晶體)13022,且分別由控制閘極電壓VG_0~VG_N來控制。記憶體控制器1304是用以控制快閃記憶體1302的存取(讀取/寫入),並且包含有(但不侷限於)儲存單元13041、一控制邏輯電路13042、一接收電路13044以及一資料處理電路13046。儲存單元13041儲存有第一對照表13041a與一第二對照表13041b。控制邏輯電路13042包含有一判斷單元13042a、一選擇單元13042b以及一調整單元13042c。接收電路13044包含有
一儲存裝置(例如一記憶體裝置)13044a。資料處理電路13046包含有一比較單元13046a以及一設定單元13046b。請注意,相較於第1圖所示的實施例,在讀取快閃記憶體1302中的複數個記憶體單元M_0~M_K的資訊時,本實施記憶體控制器1304不只會利用第一對照表13041a中的一預設閘極電壓組合選項(例如OP_1)來控制快閃記憶體1302中的複數個記憶體單元M_0~M_K,記憶體控制器1304還會調整該預設閘極電壓組合選項來產生一調整後閘極電壓組合,再利用該調整後閘極電壓組合來控制快閃記憶體1302中的複數個記憶體單元M_0~M_K,因此接收電路13044不只會讀出複數個位元序列BS_0、BS_1、...、BS_K,接收電路13044還會讀出複數個調整後位元序列BSA_0、BSA_1、...、BSA_K。接著,資料處理電路13046會依據複數個位元序列BS_0、BS_1、...、BS_K以及複數個調整後位元序列BSA_0、BSA_1、...、BSA_K來判定一電荷散佈參數。
請參考第14圖,第14圖所示係本發明記憶體控制器1304在讀取快閃記憶體1302時之一實施例示意圖。舉例來說,其為從快閃記憶體1302之一記憶體單元中讀取一軟位元(亦即軟資訊數值)的最低有效位元讀取操作的示意圖。依據第2圖與第3圖所示之臨界電壓分布的範例,具有電荷位準L0~L3中任一個電荷位準的記憶體單元將會儲存LSB=1,以及具有電荷位準L4~L7中任一個電荷位準的記憶體單元則會儲存LSB=0。以第13圖的記憶體單元M_0為例,若記憶體單元M_0所儲存的位元是(1,0,0),亦即(MSB,CSB,LSB)=(1,0,0),因此當記憶體控制器1304利用一臨界電壓VT_4’來讀取記憶體單元M_0的LSB時,接收電路8044所讀取到的值將會是位元0。換句話說,儲存在記憶體單元M_0內的電荷分佈是電荷位準L4,如第14圖所示。請注意,在第14圖中,實線所表示的是記憶體單元M_0內電荷位準L4的電荷分佈,而其他用虛線所表示的曲線僅是用來示意其他電荷位準L0~L2、L4~L7的電荷分佈參考位置,其並不是記憶體單元M_0內的電荷分佈。但是,當記憶體控制器1304的調整單元13042c將臨界電壓VT_4’調整為一調整後
臨界電壓VTA_4’,並利用該調整後臨界電壓VTA_4’來讀取記憶體單元M_0的LSB時,接收電路8044所讀取到的值將有可能從位元0變成位元1。進一步而言,若記憶體控制器1304原本所採用的臨界電壓VT_4’就已經不是最佳的臨界電壓VTO_4’,或者原本所採用的臨界電壓VT_4’就已經離最佳的臨界電壓VTO_4’有一段不小的誤差的話,則當臨界電壓VT_4’調整為一調整後臨界電壓VTA_4’時,調整後臨界電壓VTA_4’就有可能讀取不到儲存在記憶體單元M_0內的電荷,如第13圖所示。換言之,當臨界電壓VT_4’被調整為調整後臨界電壓VTA_4’後,接收電路8044所讀取到的位元值的變化與否就可以知曉記憶體單元M_0內的電荷漂移狀況。因此,為了判定出複數個記憶體單元M_0~M_K的一電荷散佈參數,本實施例的記憶體控制器1304會調整該預設閘極電壓組合選項來產生一調整後閘極電壓組合,再利用該調整後閘極電壓組合來控制快閃記憶體1302中的複數個記憶體單元M_0~M_K。
接著,資料處理電路13046的比較單元13046a就會比較接收電路13044所接收到的複數個位元序列BS_0、BS_1、...、BS_K以及複數個調整後位元序列BSA_0、BSA_1、...、BSA_K之間的一位元值變化量,接著設定單元13046b就會用來將該位元值變化量設定為該電荷散佈參數。換言之,複數個位元序列BS_0、BS_1、...、BS_K與複數個調整後位元序列BSA_0、BSA_1、...、BSA_K之間的位元值從0變成1或從1變成0的個數越多,代表複數個記憶體單元M_0~M_K的一電荷漂移越嚴重,反之亦然。因此,相較於第一實施例記憶體系統100,本實施例記憶體系統1300的第二對照表13041b內第一欄所儲存的複數個電荷散佈參數A_1~A_N是複數個不同的位元值變化量,而不是複數個錯誤症狀矩陣。
請參閱第15圖,第15圖所示係本發明記憶體控制器1304用來讀取快閃記憶體1302中所儲存之資料的方法1500之一實施例流程圖。倘若大體上可達到相同的結果,並不需要一定照第15圖所示之流程中的步驟順序來進行,且第15圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其
中。方法1500包含有下步驟:步驟1502:記憶體控制器1304接收到一讀取請求;步驟1504:利用控制邏輯電路13042從複數個預設閘極電壓組合選項OP_1~OP_M中選擇出一初始閘極電壓組合OP_ini;步驟1506:利用控制邏輯電路13042依據第一對照表13041a中初始閘極電壓組合OP_ini所對照到的預設臨界電壓(例如[VT1_1:VT1_7])來控制快閃記憶體1302中該目標實體記憶體分頁(例如P_0)的複數個記憶體單元M_0~M_K;步驟1508:利用調整單元13042c來調整初始閘極電壓組合OP_ini來產生一調整後閘極電壓組合OPA_ini來控制快閃記憶體1302中該目標實體記憶體分頁(例如P_0)的複數個記憶體單元M_0~M_K;步驟1510:利用接收電路13044讀出複數個位元序列BS_0、BS_1、...、BS_K以及複數個調整後位元序列BSA_0、BSA_1、...、BSA_K;步驟1512:利用資料處理電路13046對複數個位元序列BS_0、BS_1、...、BS_K進行一字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功,若是,則跳至步驟1526,若否,則跳至步驟1514;步驟1514:利用比較單元13046a來比較複數個位元序列BS_0、BS_1、...、BS_K與複數個調整後位元序列BSA_0、BSA_1、...、BSA_K之間的一位元值變化量;步驟1516:利用設定單元13046b來將該位元值變化量設定為對應初始閘極電壓組合OP_ini的電荷散佈參數A_1;步驟1518:利用控制邏輯電路13042依據第二對照表13041b來決定出對應電荷散佈參數A_1的一目標閘極電壓組合OP_tar1(例如目標閘極電壓組合OP_tar1可以是OP_2);步驟1520:利用控制邏輯電路13042依據目標閘極電壓組合OP_tar1來控制該目標實體記憶體分頁的複數個記憶體單元M_0~M_K以讀
出複數個更新位元序列BSU_0、BSU_1、...、BSU_K;步驟1522:利用資料處理電路13046對複數個更新位元序列BSU_0、BSU_1、...、BSU_K進行該字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功,若是,則跳至步驟1526,若否,則跳至步驟1524;步驟1524:利用控制邏輯電路13042從第一對照表13041a中依序利用複數個預設閘極電壓組合選項OP_1~OP_M中除了初始閘極電壓組合OP_ini與目標閘極電壓組合OP_tar1之外的其他預設閘極電壓組合來控制快閃記憶體1302中的複數個記憶體單元M_0~M_K,以找出可以使得該字碼錯誤更正操作成功的一目標預設閘極電壓組合,並更新第二對照表13041b中原本的目標閘極電壓組合OP_tar1,跳至步驟1526;步驟1526:利用資料處理電路13046決定出該目標實體記憶體分頁的複數個記憶體單元M_0~M_K的一讀出資訊。
請注意,為了簡化起見,本實施例的記憶體系統1300並未繪示出儲存單元13041的結構。由於本實施例的記憶體系統1300的儲存單元13041內的第一對照表13041a與第二對照表13041b係相似於第4圖的儲存單元1041分別的第一對照表1041a與第二對照表1041b,因此第4圖的儲存單元1041亦可以適用於記憶體系統1300的儲存單元13041。在閱讀有關於記憶體系統1300的技術特徵時,儲存單元13041內的第一對照表13041a與第二對照表13041b亦可請分別參照儲存單元1041的第一對照表1041a與第二對照表1041b。
此外,本實施例的記憶體系統1300與第一實施例的記憶體系統100之間的差別在於記憶體系統1300的第二對照表13041b內第一欄所儲存的複數個電荷散佈參數A_1~A_N是複數個不同的位元值變化量,而不是複數個錯誤症狀矩陣。除了如何判斷出複數個電荷散佈參數A_1~A_N的技術特徵之外,記憶體系統1300與記憶體系統100的操作流程基本上是大同小異的。因此,上述第6圖中所教導用來自動更新第二對照表1041b中對應一電
荷散佈參數的一原本的目標閘極電壓組合的方法也適用於記憶體系統1300,此領域具有通常知識者應可瞭解其對應的操作流程,故在此不另贅述。
同樣的,由於當快閃記憶體1302與記憶體控制器1304剛被製造出來時,第二對照表13041b的內容其實是空的,因此上述第7圖中所教導用來開始建立第二對照表1041b中對應一電荷散佈參數(亦即最弱位元的個數)的一目標閘極電壓組合的方法也適用於記憶體系統1300,此領域具有通常知識者應可瞭解其對應的操作流程,故在此不另贅述。
因此,依據本實施記憶體系統1300,當該字碼錯誤更正操作不成功時,記憶體控制器1304會控制複數個記憶體單元M_0~M_K來產生複數個位元序列BS_0、BS_1、...、BS_K與複數個調整後位元序列BSA_0、BSA_1、...、BSA_K,並找出複數個記憶體單元M_0~M_K來產生複數個位元序列BS_0、BS_1、...、BS_K與複數個調整後位元序列BSA_0、BSA_1、...、BSA_K之間的一位元值變化量,再據以從第二對照表13041b中直接找出對應該位元值變化量的目標閘極電壓組合OP_tar1來控制複數個記憶體單元M_0~M_K。
綜上所述,當該字碼錯誤更正操作不成功時,本發明所提供的實施例(即記憶體系統100、記憶體系統800以及記憶體系統1300)先判斷出所要讀取的快閃記憶體內的一電荷散佈參數(即一錯誤症狀矩陣、一軟資訊或一位元值變化量),再直接利用查表(即上述的第二對照表)的方式來找出對應該電荷散佈參數的一目標閘極電壓組合來控制該快閃記憶體。如此一來,當該字碼錯誤更正操作不成功時,本發明的記憶體控制器在就可以用比較快的速度找出一正確的閘極電壓組合來控制該快閃記憶體,而不需要再花時間逐一的測試每一個預設的閘極電壓組合選項來找出該正確的閘極電壓組合。
100‧‧‧記憶體系統
102‧‧‧快閃記憶體
104‧‧‧記憶體控制器
1022‧‧‧複數個記憶體單元
1041‧‧‧儲存單元
1042‧‧‧控制邏輯電路
1044‧‧‧接收電路
1046‧‧‧資料處理電路
1041a‧‧‧第一對照表
1041b‧‧‧第一對照表
1042a‧‧‧判斷單元
1042b‧‧‧選擇單元
1044a‧‧‧儲存裝置
1046a‧‧‧設定單元
1046b‧‧‧ECC偵測器
1046c‧‧‧ECC改正器
Claims (26)
- 一種讀取一快閃記憶體中所儲存之資料的方法,包含有:從複數個預設閘極電壓組合選項中選擇出一初始閘極電壓組合;依據該初始閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元,並讀出複數個位元序列;對該複數個位元序列進行一字碼(Codeword)錯誤更正(Error Correction Code,ECC)操作,並判定該字碼錯誤更正操作是否成功;若該字碼錯誤更正操作不成功,則判斷出對應該初始閘極電壓組合的一電荷散佈參數;依據一對照表來決定出對應該電荷散佈參數的一目標閘極電壓組合;以及依據該目標閘極電壓組合來控制該複數個記憶體單元以讀出複數個更新位元序列。
- 如申請專利範圍第1項所述的方法,其中依據該對照表來決定出對應該電荷散佈參數的該目標閘極電壓組合的步驟包含有:判斷出該對照表是否包含有該電荷散佈參數以及對應該電荷散佈參數的該目標閘極電壓組合;以及若該對照表包含有該電荷散佈參數以及對應該電荷散佈參數的該目標閘極電壓組合,則依據該電荷散佈參數來讀出對應該電荷散佈參數的該目標閘極電壓組合。
- 如申請專利範圍第2項所述的方法,其中依據該對照表來決定出對應該電荷散佈參數的該目標閘極電壓組合的步驟另包含有:若該對照表中沒有包含有該電荷散佈參數以及對應該電荷散佈參數的該目標閘極電壓組合,則依序利用該複數個預設閘極電壓組合選項中除了該初始閘極電壓組合之外的一其他預設閘極電壓組合來 控制該快閃記憶體中的複數個記憶體單元;依序讀出對應該其他預設閘極電壓組合的複數個其他位元序列;依序對該複數個其他位元序列進行該字碼錯誤更正操作,一直到該字碼錯誤更正操作成功為止;將對應成功的該字碼錯誤更正操作的該其他預設閘極電壓組合設定為對應該電荷散佈參數的該目標閘極電壓組合;以及將該電荷散佈參數以及對應該電荷散佈參數的該目標閘極電壓組合寫入該對照表中。
- 如申請專利範圍第1項所述的方法,另包含有:對該複數個更新位元序列進行該字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功;若該字碼錯誤更正操作不成功,則依序利用該複數個預設閘極電壓組合選項中除了該初始閘極電壓組合與該目標閘極電壓組合之外的一其他預設閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元;依序讀出對應該其他預設閘極電壓組合的複數個其他位元序列;依序對該複數個其他位元序列進行該字碼錯誤更正操作,一直到該字碼錯誤更正操作成功為止;將對應成功的該字碼錯誤更正操作的該其他預設閘極電壓組合設定為對應該電荷散佈參數的一更新目標閘極電壓組合;以及利用該更新目標閘極電壓組合來更新該對照表中對應該電荷散佈參數的該目標閘極電壓組合。
- 如申請專利範圍第1項所述的方法,其中該電荷散佈參數係執行該字碼錯誤更正操作後所產生的一錯誤症狀矩陣(syndrome-weight)。
- 如申請專利範圍第1項所述的方法,其中依據該初始閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元,並讀出複數個位元序列的步驟另包 含有:讀取出對應該初始閘極電壓組合的一軟資訊(soft information)。
- 如申請專利範圍第6項所述的方法,其中判斷出對應該初始閘極電壓組合的該電荷散佈參數的步驟包含有:依據該軟資訊來得出該電荷散佈參數。
- 如申請專利範圍第7項所述的方法,其中依據該軟資訊來得出該電荷散佈參數的步驟包含有:依據該軟資訊來判斷出該複數個位元序列中對應到一最弱位元的一個數;以及將該個數設定為該電荷散佈參數。
- 如申請專利範圍第1項所述的方法,其中判斷出對應該初始閘極電壓組合的該電荷散佈參數的步驟包含有:調整該初始閘極電壓組合來產生一調整後閘極電壓組合;利用該調整後閘極電壓組合來控制該快閃記憶體中的該複數個記憶體單元,並讀出複數個調整後位元序列;以及依據該複數個位元序列以及該複數個調整後位元序列來判定該電荷散佈參數。
- 如申請專利範圍第9項所述的方法,其中依據該複數個位元序列以及該複數個調整後位元序列來判定該電荷散佈參數的步驟包含有:比較該複數個位元序列與該複數個調整後位元序列來判定出該複數個位元序列與該複數個調整後位元序列之間的一位元值變化量;以及將該位元值變化量設定為該電荷散佈參數。
- 如申請專利範圍第10項所述的方法,其中該位元值變化量係一位元的一位元值從1切換至0或從0切換至1的個數。
- 如申請專利範圍第1項所述的方法,其中該複數個記憶體單元中的每一 個記憶體單元係一多層式儲存單元(Multilevel cell,MLC)。
- 如申請專利範圍第1項所述的方法,其中該字碼錯誤更正操作係一低密度同位檢查(low density parity-check,LDPC)操作。
- 一種用以讀取一快閃記憶體中所儲存之資料的記憶體控制器,包含有:一控制邏輯電路,用來從複數個預設閘極電壓組合選項中選擇出一初始閘極電壓組合,並依據該初始閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元;一接收電路,耦接於該控制邏輯電路,用來於該控制邏輯電路依據該初始閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元時讀出複數個位元序列;一資料處理電路,耦接於該接收電路與該控制邏輯電路,用來對該複數個位元序列進行一字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功;若該字碼錯誤更正操作不成功,則判斷出對應該初始閘極電壓組合的一電荷散佈參數;以及一儲存單元,耦接於該資料處理電路與該控制邏輯電路,用來儲存一對照表;其中該控制邏輯電路另依據該對照表來決定出對應該電荷散佈參數的一目標閘極電壓組合以及依據該目標閘極電壓組合來控制該複數個記憶體單元以讀出複數個更新位元序列。
- 如申請專利範圍第14項所述的記憶體控制器,其中該控制邏輯電路包含有:一判斷單元,用來判斷出該對照表是否包含有該電荷散佈參數以及對應該電荷散佈參數的該目標閘極電壓組合,若該對照表包含有該電荷散佈參數以及對應該電荷散佈參數的該目標閘極電壓組合,則依據該電荷散佈參數來讀出對應該電荷散佈參數的該目標閘極電壓組合。
- 如申請專利範圍第15項所述的記憶體控制器,其中該控制邏輯電路另包含有:一選擇單元,若該對照表中沒有包含有該電荷散佈參數以及對應該電荷散佈參數的該目標閘極電壓組合,則該選擇單元依序利用該複數個預設閘極電壓組合選項中除了該初始閘極電壓組合之外的一其他預設閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元;其中該接收電路另依序讀出對應該其他預設閘極電壓組合的複數個其他位元序列;該資料處理電路另依序對該複數個其他位元序列進行該字碼錯誤更正操作,一直到該字碼錯誤更正操作成功為止;該資料處理電路包含有:一設定單元,用來將對應成功的該字碼錯誤更正操作的該其他預設閘極電壓組合設定為對應該電荷散佈參數的該目標閘極電壓組合;以及將該電荷散佈參數以及對應該電荷散佈參數的該目標閘極電壓組合寫入該對照表中。
- 如申請專利範圍第14項所述的記憶體控制器,其中該接收電路另用來讀出該複數個更新位元序列,該資料處理電路另對該複數個更新位元序列進行該字碼錯誤更正操作,並判定該字碼錯誤更正操作是否成功,該控制邏輯電路另包含有:一選擇單元,若該字碼錯誤更正操作不成功,則該選擇單元依序利用該複數個預設閘極電壓組合選項中除了該初始閘極電壓組合與該目標閘極電壓組合之外的一其他預設閘極電壓組合來控制該快閃記憶體中的複數個記憶體單元;其中該接收電路另依序讀出對應該其他預設閘極電壓組合的複數個其他位元序列;該資料處理電路另依序對該複數個其他位元序列進行該字碼錯誤更正操作,一直到該字碼錯誤更正操作成功為止;該資料處理電路包含有: 一設定單元,用來將對應成功的該字碼錯誤更正操作的該其他預設閘極電壓組合設定為對應該電荷散佈參數的一更新目標閘極電壓組合;以及利用該更新目標閘極電壓組合來更新該對照表中對應該電荷散佈參數的該目標閘極電壓組合。
- 如申請專利範圍第14項所述的記憶體控制器,其中該電荷散佈參數係該資料處理電路執行該字碼錯誤更正操作後所產生的一錯誤症狀矩陣(syndrome-weight)。
- 如申請專利範圍第14項所述的記憶體控制器,其中該接收電路另包含有:一軟資訊讀取單元,用來讀取出對應該初始閘極電壓組合的一軟資訊(soft information)。
- 如申請專利範圍第19項所述的記憶體控制器,其中該資料處理電路另用來依據該軟資訊來得出該電荷散佈參數。
- 如申請專利範圍第20項所述的記憶體控制器,其中該資料處理電路包含有:一處理單元,用來依據該軟資訊來判斷出該複數個位元序列中對應到一最弱位元的一個數;以及一設定單元,用來將該個數設定為該電荷散佈參數。
- 如申請專利範圍第14項所述的記憶體控制器,其中該控制邏輯電路包含有:一調整單元,用來調整該初始閘極電壓組合來產生一調整後閘極電壓組合;該控制邏輯電路另利用該調整後閘極電壓組合來控制該快閃記憶體中的該複數個記憶體單元,該接收電路另用來讀出複數個調整後位元序列,以及該資料處理電路另用來依據該複數個位元序列以及該複數個調整後位元序列來判定該電荷散佈參數。
- 如申請專利範圍第22項所述的記憶體控制器,其中該資料處理電路包含 有:一比較單元,用來比較該複數個位元序列與該複數個調整後位元序列來判定出該複數個位元序列與該複數個調整後位元序列之間的一位元值變化量;以及一設定單元,用來將該位元值變化量設定為該電荷散佈參數。
- 如申請專利範圍第23項所述的記憶體控制器,其中該位元值變化量係一位元的一位元值從1切換至0或從0切換至1的個數。
- 如申請專利範圍第14項所述的記憶體控制器,其中該複數個記憶體單元中的每一個記憶體單元係一多層式儲存單元(Multilevel cell,MLC)。
- 如申請專利範圍第14項所述的記憶體控制器,其中該字碼錯誤更正操作係一低密度同位檢查(low density parity-check,LDPC)操作。
Priority Applications (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103114417A TWI492234B (zh) | 2014-04-21 | 2014-04-21 | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 |
CN201910465370.5A CN110335634B (zh) | 2014-04-21 | 2014-12-25 | 读取闪存中所储存的数据的方法与存储器控制器 |
CN201410825947.6A CN105047224B (zh) | 2014-04-21 | 2014-12-25 | 读取闪存中所储存的数据的方法与存储器控制器 |
US14/666,316 US9601219B2 (en) | 2014-04-21 | 2015-03-24 | Method, memory controller, and memory system for reading data stored in flash memory |
KR1020150055308A KR101702917B1 (ko) | 2014-04-21 | 2015-04-20 | 플래시 메모리 내에 저장되어 있는 데이터를 판독하는 방법, 메모리 컨트롤러, 및 메모리 시스템 |
US15/423,593 US9959165B2 (en) | 2014-04-21 | 2017-02-03 | Method, memory controller, and memory system for reading data stored in flash memory |
US15/927,069 US10599516B2 (en) | 2014-04-21 | 2018-03-20 | Method, memory controller, and memory system for reading data stored in flash memory |
US16/787,038 US11144390B2 (en) | 2014-04-21 | 2020-02-11 | Method, memory controller, and memory system for reading data stored in flash memory |
US17/468,704 US11537469B2 (en) | 2014-04-21 | 2021-09-08 | Method, memory controller, and memory system for reading data stored in flash memory |
US17/991,799 US11822428B2 (en) | 2014-04-21 | 2022-11-21 | Method, memory controller, and memory system for reading data stored in flash memory |
US18/379,154 US20240036974A1 (en) | 2014-04-21 | 2023-10-11 | Method, memory controller, and memory system for reading data stored in flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103114417A TWI492234B (zh) | 2014-04-21 | 2014-04-21 | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI492234B true TWI492234B (zh) | 2015-07-11 |
TW201541456A TW201541456A (zh) | 2015-11-01 |
Family
ID=54151579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103114417A TWI492234B (zh) | 2014-04-21 | 2014-04-21 | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 |
Country Status (4)
Country | Link |
---|---|
US (7) | US9601219B2 (zh) |
KR (1) | KR101702917B1 (zh) |
CN (2) | CN110335634B (zh) |
TW (1) | TWI492234B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI610550B (zh) * | 2016-05-17 | 2018-01-01 | 晨星半導體股份有限公司 | 數位視訊廣播之碼字解碼電路及解碼方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8681569B2 (en) * | 2012-02-22 | 2014-03-25 | Silicon Motion, Inc. | Method for reading data stored in a flash memory according to a threshold voltage distribution and memory controller and system thereof |
CN107017026B (zh) * | 2015-10-28 | 2020-04-28 | 威盛电子股份有限公司 | 非易失性存储器装置及其读取方法 |
US10049007B2 (en) * | 2015-10-28 | 2018-08-14 | Via Technologies, Inc. | Non-volatile memory device and read method thereof |
TWI594126B (zh) | 2016-07-05 | 2017-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存方法 |
US10915395B2 (en) * | 2018-11-16 | 2021-02-09 | Micron Technology, Inc. | Read retry with targeted auto read calibrate |
CN110534152A (zh) * | 2019-08-08 | 2019-12-03 | 杭州电子科技大学 | 一种预防闪存数据读取错误的方法 |
KR102496386B1 (ko) * | 2022-03-16 | 2023-02-06 | 주식회사 파두 | 낸드 플래시 메모리의 에러 특성화 방법, 이를 활용한 에러 추정 방법 및 스토리지 시스템 제어 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966546B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Non-volatile memory with soft bit data transmission for error correction control |
TWI353521B (en) * | 2006-09-28 | 2011-12-01 | Sandisk Corp | Soft-input soft-output decoder for nonvolatile mem |
TW201230048A (en) * | 2010-12-07 | 2012-07-16 | Silicon Motion Inc | Method, memory controller, and apparatus for reading data stored in flash memory |
US20120224420A1 (en) * | 2011-03-02 | 2012-09-06 | Kabushiki Kaisha Toshiba | Semiconductor memory device and decoding method |
US20130163330A1 (en) * | 2011-12-21 | 2013-06-27 | Eran Sharon | Mitigating variations arising from simultaneous multi-state sensing |
US20130176779A1 (en) * | 2011-01-04 | 2013-07-11 | Lsi Corporation | Inter-cell interference cancellation in flash memories |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081453A (en) * | 1997-04-15 | 2000-06-27 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
US6751766B2 (en) | 2002-05-20 | 2004-06-15 | Sandisk Corporation | Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data |
US7167395B1 (en) * | 2005-07-13 | 2007-01-23 | Infineon Technologies Flash Gmbh & Co. Kg | Non-volatile semiconductor memory |
US7263006B2 (en) * | 2006-01-26 | 2007-08-28 | Micron Technology, Inc. | Memory block erasing in a flash memory device |
DE102006014037A1 (de) * | 2006-03-27 | 2007-10-11 | Infineon Technologies Ag | Integrierter Schaltkreis und Verfahren zum Ermitteln eines Betriebsbereichs eines integrierten Schaltkreises |
JP5426069B2 (ja) * | 2006-08-31 | 2014-02-26 | 富士通セミコンダクター株式会社 | 半導体装置およびその製造方法 |
US7684243B2 (en) * | 2006-08-31 | 2010-03-23 | Micron Technology, Inc. | Reducing read failure in a memory device |
EP2067143B1 (en) | 2006-09-27 | 2014-01-08 | SanDisk Technologies Inc. | Memory with cell population distribution assisted read margining |
US7886204B2 (en) * | 2006-09-27 | 2011-02-08 | Sandisk Corporation | Methods of cell population distribution assisted read margining |
US7941590B2 (en) * | 2006-11-06 | 2011-05-10 | Marvell World Trade Ltd. | Adaptive read and write systems and methods for memory cells |
KR100865830B1 (ko) * | 2007-02-22 | 2008-10-28 | 주식회사 하이닉스반도체 | 메모리 소자의 독출 방법 |
US7908505B2 (en) * | 2007-09-28 | 2011-03-15 | International Business Machines Corporation | Apparatus, system, and method for event, time, and failure state recording mechanism in a power supply |
US8225181B2 (en) * | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8453022B2 (en) * | 2007-12-05 | 2013-05-28 | Densbits Technologies Ltd. | Apparatus and methods for generating row-specific reading thresholds in flash memory |
KR101423052B1 (ko) * | 2008-06-12 | 2014-07-25 | 삼성전자주식회사 | 메모리 장치 및 읽기 레벨 제어 방법 |
JP2010060873A (ja) * | 2008-09-04 | 2010-03-18 | Sony Corp | 画像表示装置 |
US9378835B2 (en) * | 2008-09-30 | 2016-06-28 | Seagate Technology Llc | Methods and apparatus for soft data generation for memory devices based using reference cells |
KR101486980B1 (ko) * | 2008-10-27 | 2015-01-30 | 삼성전자주식회사 | 불휘발성 메모리의 문턱 전압 산포의 분석 방법 |
KR101519626B1 (ko) * | 2009-02-27 | 2015-05-14 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 데이터 처리 방법 |
US8072805B2 (en) * | 2009-08-18 | 2011-12-06 | Skymedi Corporation | Method and system of finding a read voltage for a flash memory |
CN102024496B (zh) * | 2009-09-11 | 2013-12-04 | 中芯国际集成电路制造(上海)有限公司 | 闪存系统及其逻辑状态读取方法和编程方法 |
US10996258B2 (en) * | 2009-11-30 | 2021-05-04 | Ignis Innovation Inc. | Defect detection and correction of pixel circuits for AMOLED displays |
US8661184B2 (en) * | 2010-01-27 | 2014-02-25 | Fusion-Io, Inc. | Managing non-volatile media |
US8380915B2 (en) * | 2010-01-27 | 2013-02-19 | Fusion-Io, Inc. | Apparatus, system, and method for managing solid-state storage media |
TW201508759A (zh) * | 2010-04-19 | 2015-03-01 | Silicon Motion Inc | 用來進行記憶體存取管理之方法以及記憶裝置及其控制器 |
US8531888B2 (en) * | 2010-07-07 | 2013-09-10 | Marvell World Trade Ltd. | Determining optimal reference voltages for progressive reads in flash memory systems |
US9069688B2 (en) * | 2011-04-15 | 2015-06-30 | Sandisk Technologies Inc. | Dynamic optimization of back-end memory system interface |
US8665650B2 (en) * | 2011-02-18 | 2014-03-04 | Marvell World Trade Ltd. | Reliability metrics management for soft decoding |
US8930647B1 (en) * | 2011-04-06 | 2015-01-06 | P4tents1, LLC | Multiple class memory systems |
KR101925384B1 (ko) * | 2011-05-17 | 2019-02-28 | 삼성전자주식회사 | 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법 |
US9058289B2 (en) * | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
JP2013122793A (ja) * | 2011-12-09 | 2013-06-20 | Toshiba Corp | 不揮発性半導体記憶装置 |
US9093154B2 (en) * | 2012-01-16 | 2015-07-28 | Silicon Motion, Inc. | Method, memory controller and system for reading data stored in flash memory |
US8681569B2 (en) * | 2012-02-22 | 2014-03-25 | Silicon Motion, Inc. | Method for reading data stored in a flash memory according to a threshold voltage distribution and memory controller and system thereof |
US20130343131A1 (en) * | 2012-06-26 | 2013-12-26 | Lsi Corporation | Fast tracking for flash channels |
US9645177B2 (en) * | 2012-05-04 | 2017-05-09 | Seagate Technology Llc | Retention-drift-history-based non-volatile memory read threshold optimization |
US8856611B2 (en) * | 2012-08-04 | 2014-10-07 | Lsi Corporation | Soft-decision compensation for flash channel variation |
US9348959B1 (en) * | 2012-06-29 | 2016-05-24 | Xilinx, Inc. | Optimizing supply voltage and threshold voltage |
US9189313B2 (en) * | 2012-08-27 | 2015-11-17 | Kabushiki Kaisha Toshiba | Memory system having NAND-type flash memory and memory controller with shift read controller and threshold voltage comparison module |
CN103700401A (zh) * | 2012-09-28 | 2014-04-02 | 广明光电股份有限公司 | 快闪存储器编程及读取的方法 |
TWI498704B (zh) * | 2012-11-06 | 2015-09-01 | 泰達電子公司 | 可動態調整輸出電壓之電源轉換器及其適用之供電系統 |
US9195587B2 (en) * | 2013-03-07 | 2015-11-24 | Sandisk Technologies Inc. | Enhanced dynamic read process with single-level cell segmentation |
US9037946B2 (en) * | 2013-03-12 | 2015-05-19 | Sandisk Technologies Inc. | Detecting effect of corrupting event on preloaded data in non-volatile memory |
US9367389B2 (en) * | 2013-03-14 | 2016-06-14 | Seagate Technology Llc | Recovery strategy that reduces errors misidentified as reliable |
US9021331B2 (en) * | 2013-03-14 | 2015-04-28 | Seagate Technology Llc | Method and apparatus for generation of soft decision error correction code information |
US9244763B1 (en) * | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
KR102070667B1 (ko) * | 2013-08-26 | 2020-01-29 | 삼성전자주식회사 | 비휘발성 메모리 장치의 구동 방법 |
US20150085571A1 (en) * | 2013-09-24 | 2015-03-26 | Sandisk Technologies Inc. | Updating read voltages |
US9620202B2 (en) * | 2013-11-01 | 2017-04-11 | Seagate Technology Llc | Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory |
WO2015106162A1 (en) * | 2014-01-09 | 2015-07-16 | SanDisk Technologies, Inc. | Selective copyback for on die buffered non-volatile memory |
KR102190694B1 (ko) * | 2014-03-14 | 2020-12-14 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US20160080004A1 (en) * | 2014-09-11 | 2016-03-17 | Kabushiki Kaisha Toshiba | Memory controller and decoding method |
-
2014
- 2014-04-21 TW TW103114417A patent/TWI492234B/zh active
- 2014-12-25 CN CN201910465370.5A patent/CN110335634B/zh active Active
- 2014-12-25 CN CN201410825947.6A patent/CN105047224B/zh active Active
-
2015
- 2015-03-24 US US14/666,316 patent/US9601219B2/en active Active
- 2015-04-20 KR KR1020150055308A patent/KR101702917B1/ko active IP Right Grant
-
2017
- 2017-02-03 US US15/423,593 patent/US9959165B2/en active Active
-
2018
- 2018-03-20 US US15/927,069 patent/US10599516B2/en active Active
-
2020
- 2020-02-11 US US16/787,038 patent/US11144390B2/en active Active
-
2021
- 2021-09-08 US US17/468,704 patent/US11537469B2/en active Active
-
2022
- 2022-11-21 US US17/991,799 patent/US11822428B2/en active Active
-
2023
- 2023-10-11 US US18/379,154 patent/US20240036974A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI353521B (en) * | 2006-09-28 | 2011-12-01 | Sandisk Corp | Soft-input soft-output decoder for nonvolatile mem |
US7966546B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Non-volatile memory with soft bit data transmission for error correction control |
TW201230048A (en) * | 2010-12-07 | 2012-07-16 | Silicon Motion Inc | Method, memory controller, and apparatus for reading data stored in flash memory |
US20130176779A1 (en) * | 2011-01-04 | 2013-07-11 | Lsi Corporation | Inter-cell interference cancellation in flash memories |
US20120224420A1 (en) * | 2011-03-02 | 2012-09-06 | Kabushiki Kaisha Toshiba | Semiconductor memory device and decoding method |
US20130163330A1 (en) * | 2011-12-21 | 2013-06-27 | Eran Sharon | Mitigating variations arising from simultaneous multi-state sensing |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI610550B (zh) * | 2016-05-17 | 2018-01-01 | 晨星半導體股份有限公司 | 數位視訊廣播之碼字解碼電路及解碼方法 |
Also Published As
Publication number | Publication date |
---|---|
KR101702917B1 (ko) | 2017-02-06 |
US20210406119A1 (en) | 2021-12-30 |
US11822428B2 (en) | 2023-11-21 |
US20180210788A1 (en) | 2018-07-26 |
CN105047224A (zh) | 2015-11-11 |
US20170185479A1 (en) | 2017-06-29 |
US20150301888A1 (en) | 2015-10-22 |
KR20150121671A (ko) | 2015-10-29 |
US20230080339A1 (en) | 2023-03-16 |
CN110335634A (zh) | 2019-10-15 |
TW201541456A (zh) | 2015-11-01 |
CN105047224B (zh) | 2019-06-28 |
US20200183786A1 (en) | 2020-06-11 |
CN110335634B (zh) | 2021-03-30 |
US20240036974A1 (en) | 2024-02-01 |
US11144390B2 (en) | 2021-10-12 |
US10599516B2 (en) | 2020-03-24 |
US9601219B2 (en) | 2017-03-21 |
US11537469B2 (en) | 2022-12-27 |
US9959165B2 (en) | 2018-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11742030B2 (en) | Method and apparatus for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory | |
TWI492234B (zh) | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 | |
US9508436B2 (en) | Method for reading data stored in a flash memory according to a physical characteristic and memory controller and system thereof | |
US9177664B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
US9286972B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
US9093154B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
CN107240419B (zh) | 读取快闪存储器中所储存的数据的方法、存储器控制器与系统 |