TWI514388B - 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 - Google Patents
讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 Download PDFInfo
- Publication number
- TWI514388B TWI514388B TW101110025A TW101110025A TWI514388B TW I514388 B TWI514388 B TW I514388B TW 101110025 A TW101110025 A TW 101110025A TW 101110025 A TW101110025 A TW 101110025A TW I514388 B TWI514388 B TW I514388B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- memory
- flash memory
- binary digit
- codeword
- Prior art date
Links
Classifications
-
- 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
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Description
本發明有關於讀取快閃記憶體(flash memory)中所儲存的資料,尤指一種藉由參照快閃記憶體之記憶單元(memory cell)所讀出的位元序列(bit sequence)的二進位數字分佈特性(binary digit distribution characteristic)來讀取快閃記憶體中所儲存之資料的方法與記憶體控制器。
快閃記憶體可透過電子式的抹除(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)便會有所改變,因此,使用原本的控制閘極電壓設定(亦即臨界電壓設定)來讀取記憶體單元中所儲存的資訊可能會因為改變後的臨界變壓分佈而無法正確地獲得所儲存的資訊。
利用不同的控制閘極電壓設定以讀取快閃記憶體可能有較高的機會得到正確的儲存資訊。然而,儲存所有利用不同控制閘極電壓設定所取得的資訊可能需要更多的記憶空間。
因此,本發明的目的之一在於提供一種讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與裝置,以解決上述問題。讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與裝置。
依據本發明之一實施例,一種示範性地用以讀取儲存在一快閃記憶體之資料的方法係被揭露,其中該快閃記憶體包含複數個記憶體單元並藉由將該複數個記憶體單元中之一記憶體單元程式化至2N
個電壓狀態中的一個電壓狀態以儲存N位元資料,該方法包含:控制該快閃記憶體對該記憶體單元執行至少一讀取運作以取得至少一二進位數字以代表該N位元資料之一位元;依據該至少一二進位數字產生一碼字以代表該N位元資料之該位元,其中該碼字係不同於該至少一二進位數字;以及將該碼字提供於一錯誤更正解碼器以執行一錯誤更正運作。
依據本發明之另一實施例,揭露了一種用以讀取儲存在一快閃記憶體之資料之記憶體控制器,其中該快閃記憶體包含複數個記憶體單元並藉由將該複數個記憶體單元中之一記憶體單元程式化至2N
個電壓狀態中的一個電壓狀態以儲存N位元資料,該記憶體控制器包含:一控制邏輯電路,用以控制該快閃記憶體對該記憶體單元執行至少一讀取運作以取得至少一二進位數字以代表該N位元資料之一位元;一編碼器,耦接至該控制邏輯電路,用以依據該至少一二進位數字產生一碼字以代表該N位元資料之該位元,其中該碼字係不同於該至少一二進位數字;以及一緩衝記憶體,耦接至該編碼器,用以儲存該碼字並將該碼字提供於一錯誤更正解碼器以執行一錯誤更正運作。
依據本發明另一實施例,揭露了一種用以讀取儲存在一快閃記憶體之資料之系統,其中該快閃記憶體包含複數個記憶體單元並藉由將該複數個記憶體單元中之一記憶體單元程式化至2N
個電壓狀態中的一個電壓狀態以儲存N位元資料,該系統包含:一控制邏輯電路,用以控制該快閃記憶體對該記憶體單元執行至少一讀取運作以取得至少一二進位數字以代表該N位元資料之一位元;一編碼器,耦接至該控制邏輯電路,用以依據該至少一二進位數字產生一碼字以代表該N位元資料之該位元,其中該碼字係不同於該至少一二進位數字;以及一緩衝記憶體,耦接至該編碼器,用以儲存該碼字並將該碼字提供於一錯誤更正解碼器以執行一錯誤更正運作。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區別元件的方式,而是以元件在功能上的差異來作為區別的基準。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。此外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置電性連接於一第二裝置,則代表該第一裝置可直接連接於該第二裝置,或透過其他裝置或連接手段間接地連接至該第二裝置。
請注意到,讀取NAND型快閃記憶體之實體記憶體分頁中的記憶體單元所儲存的多個位元僅是作為一實施例,以說明本發明的技術特徵,然而,無論快閃記憶體是NAND型快閃記憶體或是具有其它類型的快閃記憶體(例如NOR型快閃記憶體),只要是將從不同讀取運作中所取得的二進位數字編碼成碼字以進行錯誤更正運作,均符合本發明的精神。
請參閱第1圖,其為本發明記憶體系統之第一實施例的示意圖。記憶體系統1000包含有一快閃記憶體1100以及一記憶體控制器(memory controller)1200,於本實施例中,快閃記憶體1100可以是包含複數個實體記憶體分頁P_0、P_1、P_2、...、P_N的NAND型快閃記憶體,其中實體記憶體分頁P_0~P_N中的每一實體記憶體分頁包含有複數個記憶體單元(例如浮動閘極電晶體)1110,舉例來說,對於要被讀取之一目標實體記憶體分頁P_0來說,其包含有記憶體單元M_0~M_K。為了讀取目標實體記憶體分頁P_0之記憶體單元M_0~M_K中所儲存的資料,控制閘極電壓VG_0~VG_N便應該要適當地設定,例如,控制閘極電壓VG_0~VG_N應該要適當地設定以確保實體記憶體分頁P_1~P_N中所有的記憶體單元(浮動閘極記憶體)103均處於導通狀態。假若每一記憶體單元103是用以儲存N個位元(例如,包含最低有效位元(least significant bit,LSB)、中間有效位元(central significant bit,CSB)與最高有效位元(most significant bit,MSB)的3個位元),則快閃記憶體102會將控制閘極電壓VG_0設定為(2N
-1)個電壓準位,以便辨識出目標實體記憶體分頁P_0中每一記憶體單元103的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所導通時,快閃記憶體1100將會輸出代表其最低有效位元的一個二進位數字”1”;否則,快閃記憶體1100將會輸出代表其最低有效位元的另一個二進位數字”0”。
為了辨識出記憶體單元M_0~M_K的中間有效位元,快閃記憶體1100便將控制閘極電壓VG_0分別設定為第2圖所示之臨界電壓VT_2與VT_6,同樣地,實體記憶體分頁P_0中每一記憶體單元的導通狀態便會指示出該記憶體單元所具有的中間有效位元是”0”或”1”。於本實施例中,當一記憶體單元會被施加於其控制閘極之臨界電壓VT_2與VT_6中的任一個所導通時,快閃記憶體1100將會輸出代表其中間有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_2所導通,但是卻會被施加於其控制閘極之臨界電壓VT_6所導通時,快閃記憶體102將會輸出代表其中間有效位元的一個二進位數字”0”;以及當該記憶體單元除了不會被施加於其控制閘極之臨界電壓VT_2所導通,也不會被施加於其控制閘極之臨界電壓VT_6所導通時,快閃記憶體1100將會輸出代表其中間有效位元的一個二進位數字”1”。
為了辨識出記憶體單元M_0~M_K的最高有效位元,快閃記憶體1100便將控制閘極電壓VG_0分別設定為第2圖所示之臨界電壓VT_1、VT_3、VT_5與VT_7,同樣地,實體記憶體分頁P_0中每一記憶體單元的導通狀態便會指示出該記憶體單元所具有的最高有效位元是”0”或”1”。於本實施例中,當一記憶體單元會被施加於其控制閘極之臨界電壓VT_1、VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1所導通,但是卻會被施加於其控制閘極之臨界電壓VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”0”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1與VT_3中的任一個所導通,但是卻會被施加於其控制閘極之臨界電壓VT_5與VT_7中的任一個所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”1”;當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1、VT_3與VT_5中的任一個所導通,但是卻會被施加於其控制閘極之臨界電壓VT_7所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”0”;以及當該記憶體單元不會被施加於其控制閘極之臨界電壓VT_1、VT_3、VT_5與VT_7中的任一個所導通時,快閃記憶體1100將會輸出代表其最高有效位元的一個二進位數字”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)錯誤而無法成功運行。於本實施例中,記憶體控制器1200是設計來適應性地對記憶體單元M_0~M_K所讀取的碼字執行軟解碼以增強解碼能力。細節於後詳述。
請再次參閱第1圖。記憶體控制器104是用以控制快閃記憶體102的存取(讀取/寫入),並且包含有(但不侷限於)一控制邏輯電路1210以及一錯誤更正電路(ECC circuit,其具有一錯誤更正解碼器1222以及一錯誤更正編碼器1229)。請注意,第1圖僅顯示與本發明之技術特徵有關的元件,亦即,記憶體控制器104亦可包含額外的元件來支援其它的功能。一般來說,當接收到針對目標實體記憶體分頁P_0中記憶體單元M_0~M_K所儲存之資料的一讀取請求(read request)時,控制邏輯電路1210會因應該讀取請求而控制快閃記憶體1100來讀取所要求的資料(requested data),接著,當快閃記憶體102成功地辨識出記憶體單元M_0~M_K中每一記憶體單元所儲存的所有位元時,包含有記憶體單元M_0~M_K之已辨識出的位元的讀出資訊便會被接收電路1210所接收。如熟習技藝者所知,位於一實體記憶體分頁中的一部份記憶體單元是用來儲存錯誤更正資訊(例如一錯誤更正碼(ECC code)),因此,錯誤更正電路1220便是用來針對由快閃記憶體1100所讀取出來的讀出資訊(例如一碼字)進行一錯誤更正操作。於本實施例中,錯誤更正電路1220包含有一錯誤更正解碼器(ECC decoder) 1222以及一錯誤更正編碼器(ECC corrector)1229。錯誤更正解碼器1222是用來檢查讀出資訊的正確性,以藉此偵測任何錯誤位元的存在。錯誤更正解碼器1222亦用於對檢查過的讀出資訊中所發現到的錯誤位元進行更正然而,當讀出資訊中實際存在之錯誤位元的數量超過了錯誤更正解碼器1222有辦法依照硬解碼(例如BCH(Bose-Chaudhuri-Hocquenghem之方式))更正之錯誤位元的最大數量時,錯誤更正解碼器1222便會指示控制邏輯電路1210讀出資訊中包含有無法更正的錯誤。如此一來,控制邏輯電路1210將會啟動軟讀取(soft read)機制以取得軟資訊,該些軟資訊可被ECC解碼器1222用來進行軟解碼機制。細節於後詳述。
於本實施例中,錯誤更正解碼器1222可由低密度同位檢查(low density parity-check,LDPC)解碼器來加以實作,控制邏輯電路1210控制快閃記憶體1100來提供要被LDPC解碼器所解碼的軟資訊(soft information),所以,在控制邏輯電路1210的控制之下,快閃記憶體1100便輸出多個二進位數字來作為各個記憶體單元M_0~M_K所讀取出來的軟位元(soft bit)。進一步來說,當進行最低有效位元資料的讀取、中間有效位元資料的讀取或最高有效位元資料的讀取時,控制邏輯電路1210是用以控制快閃記憶體1100來針對目標實體記憶體分頁之記憶體單元M_0~M_K中的每一記憶體單元執行複數次讀取操作(例如7次讀取操作)。
請參閱第4圖,其為從快閃記憶體1100之一記憶體單元中讀取一軟位元(亦即軟資訊數值)的最低有效位元讀取操作的示意圖。依據第2圖與第3圖所示之臨界電壓分布的範例,具有電荷位準L0~L3中任一個電荷位準的記憶體單元將會儲存LSB=1,以及具有電荷位準L4~L7中任一個電荷位準的記憶體單元則會儲存LSB=0。於本實施例中,控制單元1210決定一初始控制閘極電壓VLSB
以及一電壓間距(voltage spacing)D,接著控制快閃記憶體1100來針對記憶體單元M_0~M_K中的每一記憶體單元執行7次讀取操作,而基於電壓調整次序(voltage adjusting order)OD1,快閃記憶體1100會依序以VLSB
、VLSB
+D、VLSB
-D、VLSB
+2D、VLSB
-2D、VLSB
+3D、VLSB
-3D來設定控制閘極電壓VG_0,因此,由於所施加之閘極控制電壓VLSB
、VLSB
+D、VLSB
-D、VLSB
+2D、VLSB
-2D、VLSB
+3D、VLSB
-3D的緣故,位元序列BS_0~BS_M中的每一位元序列都會依序得到7個位元。請注意,位元序列BS_0~BS_M中的每一位元序列係作為一軟位元,其代表由一記憶體單元所讀取出來的軟資訊,且透過初始控制閘極電壓VLSB
所獲得的二進位數字可作為一正負號位元(sign bit)(亦即硬位元(hard bit)數值)。利用初始控制閘極電壓VLSB
所進行之讀取運作可視為一般讀取運作。而利用控制閘極電壓VLSB
+D、VLSB
-D、VLSB
+2D、VLSB
-2D、VLSB
+3D、VLSB
-3D所進行之讀取運作可分別視為重讀運作1~6。
於本實施例中,每一位元序列具有八種可能的二進位數字組合BS1~BS8的其中之一。當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓高於VLSB
+3D,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS8=”0000000”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB
+2D與VLSB
+3D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS7=”0000010”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB
+D與VLSB
+2D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS6=”0001010”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB
與VLSB
+D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS5=”0101010”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓低於VLSB
-3D,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS1=”1111111”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB
-2D與VLSB
-3D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS2=”1111110”;當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB
-D與VLSB
-2D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS3=”1111010”;以及當目前儲存於記憶體單元之浮動閘極的電荷使得記憶體單元的臨界電壓介於VLSB
與VLSB
-D之間,則從記憶體單元所讀取出來的位元序列將會具有二進位數字組合BS4=”1101010”。
當一個位元序列中所有的二進位數字均為”1”時,此代表相對應的記憶體單元具有電荷位準L0、L1、L2或L3,且LSB=1的可靠度(reliability)很高。另一方面,當一個位元序列中所有的二進位數字均為”0”時,此代表相對應的記憶體單元具有電荷位準L5、L6、L7或L8,且LSB=0的可靠度很高。然而,當一個位元序列具有不同的二進位數字”0”與”1”混雜其中時,此代表相對應的記憶體單元具有電荷位準L3或L4,由於相對應記憶體單元的臨界電壓是介於VLSB
-3D與VLSB
+3D之間,LSB=1/LSB=0的可靠度便會由於錯誤率較高而較低,舉例來說,原本儲存LSB=0的記憶體單元會具有對應至電荷位準L4的電荷儲存數量以使得臨界電壓高於VLSB
+3D,然而,當寫入/抹除次數或資料保留時間增加時,所儲存之電荷的數量便會有所改變,因而可能使得臨界電壓低於VLSB
;同樣地,原本儲存LSB=1的記憶體單元會具有對應至電荷位準L3的電荷儲存數量以使得臨界電壓低於VLSB
-3D,相較於硬解碼,存在於軟資訊數值的可靠度將可增加在進行軟解碼時解碼正確的機率。然而軟資訊數值包含於一般讀取運作與後續的重讀運作1~6所取得的多個二進位數字,如前所述七個二進位數字。為了執行軟解碼,錯誤更正解碼器1222必須取得並儲存完整的軟資訊數值,因此,錯誤更正解碼器1222需要大量的儲存空間以儲存完整的軟資訊數值。這將會增加晶片面積與成本。
成本。為減少儲存空間,從讀取運作中取得之二進位數字可以在儲存或解碼前就先編碼為一個較短的碼字。請在參照第1圖,如前所述,錯誤更正電路1220係用來對從快閃記憶體1100中取得之讀取資訊進行錯誤更正運作。而錯誤更正解碼器1222係用來檢查讀取資訊的正確性。除此之外,錯誤更正解碼器1222更包含一編碼器1223、一儲存裝置1227以及一解碼單元1228。編碼器1223係用以依據從快閃記憶體1100讀取之二進位數字來產生一較短的碼字代表該二進位數字。儲存裝置1227係用以儲存由編碼器產生之碼字並提供所儲存之碼字給解碼單元1228。解碼單元1228係用以對該碼字執行錯誤更正運作。細節於後詳述。
在一實施例中,控制邏輯電路1210控制快閃記憶體1100依照初始控制閘極電壓VLSB
對記憶體單元,例如實體記憶體分頁P_0的記憶體細胞單元M_0~M-K,進行一讀取運作以辨識記憶體細胞單元M_0~M-K的最低有效位元。依照初始控制閘極電壓VLSB
所進行的讀取運作可視為一般讀取運作。快閃記憶體1100提供包含了資料部分、備用部分與至少一校驗碼(parity)部分之一記憶分頁之二進位數字(a page of binary digits)至控制邏輯電路1210。控制邏輯電路1210傳送其所接收之二進位數字至錯誤更正電路1220。在一實施例中,錯誤更正電路1220將所接收的二進位數字區分為兩個部分。第一部分包含資料部分與其相對應的校驗碼部分。第二部分包含備用部分以及其相應的校驗碼部分。錯誤更正電路1220對第一部分進行軟式解碼運作(soft decode operation),而對第二部分進行硬式解碼運作(hard decode operation)。此乃例示性說明,而非本發明之限制。對該分頁之二進位數字之任一部分進行軟式解碼或硬式解碼運作均為本發明之範疇。在此實施例中,編碼器1223依據第一部分之二進位數字產生一碼字。細節於後詳述。
請參照第5圖與第6圖,第5圖係示於第1圖之編碼器1223之方塊圖。第6圖係說明對讀自快閃記憶體單元的二進位數字進行編碼的示意圖。編碼器1223包含一比較單元1224以及一判斷單元1225。第5圖僅顯示與本發明之技術特徵有關的元件,亦即,編碼器1223亦可包含額外的元件來支援其它的功能。比較單元1223係用於比較從控制邏輯電路送來的第一部分之二進位數字以及儲存在儲存裝置1227之正負位元。當讀取一目標實體記憶體分頁(例如實體記憶體分頁P_0)時,控制邏輯電路1210控制快閃記憶體1210依照一初始控制閘極電壓VLSB
對記憶體細胞單元(例如實體記憶體分頁P_0之記憶體細胞M_0~M_K)進行一控制邏輯電路1210。若錯誤更正運作指出該碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB
+D對記憶體細胞單元進行一重讀運作(D係一預定之電壓間隔)。細節於後詳述。讀取運作以識別記憶體細胞M_0~M_K之最低有效位元。如第6圖所示,該實體記憶體分頁之第一部分之二進位數字係傳送至編碼器1223。請注意到,該些二進位數字之各個位元係代表該實體記憶體分頁P_0之記憶體細胞單元之最低有效位元之硬位元(hard bit,亦可稱為硬資訊(hard information))。例如,該些二進位數字最左邊的二進位數字係”1”,其代表實體記憶體分頁P_0之記憶體細胞M_0之最低有效位元之硬位元係為”1”。該些二進位數字最左邊的二進位數字旁邊的二進位數字係”1”,其代表實體記憶體分頁P_0之記憶體細胞M_1之最低有效位元之硬位元係為”1”,以此類推。因第一部分之二進位數字係得自對該些記憶體細胞單元依照初始控制閘極電壓進行讀取運作,該些二進位數字可視為該些記憶體單元之正負號位元。據此,編碼器1223產生(並設定)一個高強度位元為”1”一個低強度位元為”1”,以代表正負位元”1”具有最高之可靠度。換言之,記憶體單元M_0被假設為”1”,且具有最高之可靠度。此外,包含硬位元”1”以及軟位元(soft bit,亦可稱為軟資訊(soft information))”11”的碼字”111”係用來代表記憶體單元M_0所儲存之資訊。用來代表其他記憶體單元之碼字亦依照類似的方式進行。接著,第一部分之二進位數字之碼字係傳送至儲存裝置1227。接著,儲存裝置1227將該碼字提供給解碼單元1228以執行錯誤更正運作。若錯誤更正運作指出該碼字係正確或可更正(換言之儲存在記憶體單元之資料可以被正確地取得),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給
請參照第7圖,第7圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。在讀取一目標實體記憶體分頁(例如,實體記憶體分頁P_0)時,控制邏輯電路1210控制快閃記憶體1100依照第二控制閘極電壓VLSB
+D對記憶體單元(例如,實體記憶體分頁P_0之記憶體單元M_0~M_K)執行一讀取運作以判讀記憶體單元M_0~M_K之最低有效位元。此重讀運作可被視為第一次重讀運作。如第7圖所示,該實體記憶體分頁之第一部分之二進位數字係送至編碼單元1223。請注意到,該些二進位數字之每個位元係代表一實體記憶體分頁P_0之一記憶體細胞單元之最低有效位元之軟位元。例如,該些二進位數字最左邊的二進位數字係”1”,其代表實體記憶體分頁P_0之記憶體細胞M_0之最低有效位元之軟位元係為”1”。該些二進位數字最左邊的二進位數字旁邊的二進位數字係”0”,其代表實體記憶體分頁P_0之記憶體細胞M_1之最低有效位元之軟位元係為”0”,以此類推。請注意到,第7圖所示之二進位數字(重讀資料)可能不完全與正負號位元相同。因為用以進行第一次重讀運作之控制閘極電壓係VLSB
+D,所以在利用閘極控制電壓VLSB
與VLSB
+D讀取臨界電壓落在VLSB
與VLSB
+D之記憶體單元時會得到不同的結果。例如,依照控制閘極電壓VLSB
所取得之記憶體單元M_1之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB
+D所取得之記憶體單元M_1之最低有效位元之軟位元係”1”。因此,編碼器1223需要更新記憶體單元M_1之最低有效位元之之碼字之可靠度。細節於後詳述。
依照控制閘極電壓VLSB
+D所取得重讀資料(二進位數字)係送至比較單元1224。比較單元1224存取儲存在儲存裝置1227之正負號位元,並比較正負號位元與重讀資料以更新碼字。若正負號位元與其相對應之重讀資料(二進位數字)係相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要維持該正負號位元之可靠度。換言之,用來表達相對應之記憶體單元之碼字不被改變。若正負號位元與其相對應之重讀資料(二進位數字)係不相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要更新該正負號位元之可靠度至一最低可靠度。換言之,用來表達相對應之記憶體單元之碼字係被改變。例如,依照控制閘極電壓VLSB
所取得之記憶體單元M_1之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB
+D所取得之記憶體單元M_1之最低有效位元之軟位元係”1”。據此,判斷單元1225判定一高強度位元”0”以及一低強度位元”0”以代表正負號位元”1”具有最低之可靠度。換言之,記憶體單元M_1之最低有效位元係被更新為有最低可靠度之”0”。此外,包含硬位元”0”以及軟位元”00”之碼字”000”係用來代表記憶體單元M_1之最低有效位元。用來表達其他記憶體單元之碼字亦依照類似的方式進行。接著,更新後的第一部分之二進位數字之碼字係送至儲存裝置1227用以更新原來的碼字。接著,儲存裝置1227將更新後的碼字提供給解碼單元1228以執行錯誤更正運作。若錯誤更正運作指出更新後的碼字係正確或可更正(換言之儲存在記憶體單元之資料可以被正確地取得),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出更新後的碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB
-D對記憶體細胞單元進行一重讀運作(D係一預定之電壓間隔)。依照控制閘極電壓VLSB
-D對記憶體細胞單元所進行之重讀運作可視為第二重讀運作。請注意到,一般讀取運作與第一重讀運作之電壓間隔係與一般讀取運作與第二重讀運作之電壓間隔相同。因此,更新碼字可靠度之規則應該類似,依照第二次重讀運作所取得之重讀資料產生與儲存碼字的細節在此省略。若錯誤更正運作指出第二次重讀運作所得之更新後的碼字係正確或可更正(換言之儲存在記憶體單元之資料可以被正確地取得),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出第二次重讀運作所得之更新後的碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB
+2D對記憶體細胞單元進行一重讀運作(D係一預定之電壓間隔)。依照控制閘極電壓VLSB
+2D對記憶體細胞單元所進行之重讀運作可視為第三重讀運作。細節詳述於後。
請參照第8圖,第8圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。在讀取一目標實體記憶體分頁(例如,實體記憶體分頁P_0)時,控制邏輯電路1210控制快閃記憶體1100依照第三控制閘極電壓VLSB
+2D對記憶體單元(例如,實體記憶體分頁P_0之記憶體單元M_0~M_K)執行一讀取運作以判讀記憶體單元M_0~M_K之最低有效位元。此重讀運作可被視為第三次重讀運作。如第8圖所示,該實體記憶體分頁之第一部分之二進位數字係送至編碼單元1223。請注意到,該些二進位數字之每個位元係代表一實體記憶體分頁P_0之一記憶體細胞單元之最低有效位元之軟位元。例如,該些二進位數字最左邊的二進位數字係”0”,其代表實體記憶體分頁P_0之記憶體細胞M_0之最低有效位元之軟位元。請注意到,第8圖所示之二進位數字(重讀資料)可能不完全與正負號位元相同。因為用以進行第三次重讀運作之控制閘極電壓係VLSB
+2D,所以在利用閘極控制電壓VLSB
與VLSB
+2D讀取臨界電壓落在VLSB
與VLSB
+2D之記憶體單元時會得到不同的結果。例如,依照控制閘極電壓VLSB
所取得之記憶體單元M_0之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB
+2D所取得之記憶體單元M_0之最低有效位元之軟位元係”1”。因此,編碼器1223需要更新記憶體單元M_0之最低有效位元之之碼字之可靠度。細節於後詳述。
依照控制閘極電壓VLSB
+2D所取得重讀資料(二進位數字)係送至比較單元1224。比較單元1224存取儲存在儲存裝置1227之正負號位元,並比較正負號位元與重讀資料以更新碼字。請注意到,在第一次重讀運作與第二次重讀運作中某些二進位數字可能會與其相對應之正負號位元不同。該些二進位數字之可靠度將不再被更新。比較單元1224可忽略該些二進位數字。判斷單元1225則維持該更新後的碼字的之可靠度。換言之,當高強度位元及低強度位元已經被更新過了,判斷單元1225維持高強度位元與低強度位元之值。若正負號位元與其相對應之重讀資料(二進位數字)不相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要維持該正負號位元之可靠度。換言之,用以表達相對應之記憶體單元之碼字係不改變。若正負號位元與其相對應之重讀資料(二進位數字)係不相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要更新該正負號位元之可靠度至一較高之可靠度。換言之,用來表達相對應之記憶體單元之碼字係被改變。例如,依照控制閘極電壓VLSB
所取得之記憶體單元M_0之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB
+2D所取得之記憶體單元M_0之最低有效位元之軟位元係”1”。據此,判斷單元1225判定一高強度位元”0”以及一低強度位元”1”以代表正負號位元”1”具有較高之可靠度。換言之,記憶體單元M_0之最低有效位元係被更新為有較高可靠度之”0”。此外,包含硬位元”0”以及軟位元”01”之碼字”001”係用來代表記憶體單元M_0之最低有效位元。用來表達其他記憶體單元之碼字亦依照類似的方式進行。接著,更新後的第一部分之二進位數字之碼字係送至儲存裝置1227用以更新原來的碼字。接著,儲存裝置1227將更新後的碼字提供給解碼單元1228以執行錯誤更正運作。若錯誤更正運作指出更新後的碼字係正確或可更正(換言之儲存在記憶體單元之資料可以被正確地取得),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出更新後的碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB
-2D對記憶體細胞單元進行一重讀運作(D係一預定之電壓間隔)。細節詳述於後。
依照控制閘極電壓VLSB
-2D對記憶體細胞單元所進行之重讀運作可視為第四重讀運作。請注意到,一般讀取運作與第三重讀運作之電壓間隔係與一般讀取運作與第四重讀運作之電壓間隔相同。因此,更新碼字可靠度之規則應該類似,依照第四次重讀運作所取得之重讀資料產生與儲存碼字的細節在此省略。若錯誤更正運作指出第四次重讀運作所得之更新後的碼字係正確或可更正(換言之儲存在記憶體單元之資料可以被正確地取得),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出第四次重讀運作所得之更新後的碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB
+3D對記憶體細胞單元進行一重讀運作。依照控制閘極電壓VLSB
+3D對記憶體細胞單元所進行之重讀運作可視為第五重讀運作。細節詳述於後。
請參照第9圖,第9圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。在讀取一目標實體記憶體分頁(例如,實體記憶體分頁P_0)時,控制邏輯電路1210控制快閃記憶體1100依照第五控制閘極電壓VLSB
+5D對記憶體單元(例如,實體記憶體分頁P_0之記憶體單元M_0~M_K)執行一讀取運作以判讀記憶體單元M_0~M_K之最低有效位元。此重讀運作可被視為第五次重讀運作。如第9圖所示,該實體記憶體分頁之第一部分之二進位數字係送至編碼單元1223。請注意到,該些二進位數字之每個位元係代表一實體記憶體分頁P_0之一記憶體細胞單元之最低有效位元之軟位元。例如,該些二進位數字最右邊的二進位數字係”0”,其代表實體記憶體分頁P_0之記憶體細胞M_0之最低有效位元之軟位元。請注意到,第9圖所示之二進位數字(重讀資料)可能不完全與正負號位元相同。因為用以進行第五次重讀運作之控制閘極電壓係VLSB
+3D,所以在利用閘極控制電壓VLSB
與VLSB
+3D讀取臨界電壓落在VLSB
與VLSB
+3D之記憶體單元時會得到不同的結果。例如,依照控制閘極電壓VLSB
所取得之記憶體單元M_K之最低有效位元之正負號位元係”1”,而依照控制閘極電壓VLSB
+3D所取得之記憶體單元M_0之最低有效位元之軟位元係”1”。因此,編碼器1223需要更新記憶體單元M_K之最低有效位元之之碼字之可靠度。細節於後詳述。
依照控制閘極電壓VLSB
+3D所取得重讀資料(二進位數字)係送至比較單元1224。比較單元1224存取儲存在儲存裝置1227之正負號位元,並比較正負號位元與重讀資料以更新碼字。請注意到,在第一、第二、第三、第四次重讀運作中某些二進位數字可能會與其相對應之正負號位元不同。該些二進位數字之可靠度將不再被更新。比較單元1224可忽略該些二進位數字。判斷單元1225則維持該更新後的碼字的之可靠度。換言之,當高強度位元及低強度位元已經被更新過了,判斷單元1225維持高強度位元與低強度位元之值。若正負號位元與其相對應之重讀資料(二進位數字)係相同,比較單元1224將該結果指示判斷單元1225。換言之,用以表達相對應之記憶體單元之碼字係不改變。若正負號位元與其相對應之重讀資料(二進位數字)係不相同,比較單元1224將該結果指示判斷單元1225。而判斷單元1225判定要更新該正負號位元之可靠度至一較高之可靠度。換言之,用來表達相對應之記憶體單元之碼字係被改變。例如,依照控制閘極電壓VLSB
所取得之記憶體單元M_K之最低有效位元之正負號位元係”0”,而依照控制閘極電壓VLSB
+3D所取得之記憶體單元M_K之最低有效位元之軟位元係”1”。據此,判斷單元1225判定一高強度位元”1”以及一低強度位元”0”以代表正負號位元”1”具有較高之可靠度。換言之,記憶體單元M_K之最低有效位元係被更新為有較高可靠度之”0”。此外,包含硬位元”0”以及軟位元”10”之碼字”010”係用來代表記憶體單元M_K之最低有效位元。用來表達其他記憶體單元之碼字亦依照類似的方式進行。接著,更新後的第一部分之二進位數字之碼字係送至儲存裝置1227用以更新原來的碼字。接著,儲存裝置1227將更新後的碼字提供給解碼單元1228以執行錯誤更正運作。若錯誤更正運作指出更新後的碼字係正確或可更正(換言之儲存在記憶體單元之資料可以被正確地取得),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出更新後的碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB
-3D對記憶體細胞單元進行一重讀運作。細節詳述於後。
依照控制閘極電壓VLSB
-3D對記憶體細胞單元所進行之重讀運作可視為第六重讀運作。請注意到,一般讀取運作與第五重讀運作之電壓間隔係與一般讀取運作與第六重讀運作之電壓間隔相同。因此,更新碼字可靠度之規則應該類似,依照第六重讀運作所取得之重讀資料產生與儲存碼字的細節在此省略。若錯誤更正運作指出第六次重讀運作所得之更新後的碼字係正確或可更正(換言之儲存在記憶體單元之資料可以被正確地取得),則錯誤更正電路1220將此結果通知控制邏輯電路1210,並將正確的資料提供給控制邏輯電路1210。若錯誤更正運作指出第六次重讀運作所得之更新後的碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210控制快閃記憶體1100依照控制閘極電壓VLSB
+4D對記憶體細胞單元進行一重讀運作。依照控制閘極電壓VLSB
+4D對記憶體細胞單元所進行之重讀運作可視為第七重讀運作。或者,若錯誤更正運作指出第六次重讀運作所得之更新後的碼字係不可更正(換言之儲存在記憶體單元之資料無法被正確地取得),錯誤更正電路1220將此結果通知控制邏輯電路1210,而控制邏輯電路1210判定對目標實體記憶體分頁P_0讀取失敗,並將讀取失敗回報給一主機(host)。讀取運作之次數可任意決定,其非為本發明之限制。
請參照第10圖,第10圖係說明碼字與記憶體單元之對應關係之示意圖。例如,當收到依照初始控制閘極電壓VLSB所取得之一記憶體單元之硬位元時,編碼器1223將該硬位元視為該記憶體單元之最低有效位元之正負號位元並預設該正負號位元具有最高之可靠度,例如,碼字”011”代表非常強的”0”,而碼字”111”代表非常強的”1”。然而,在第一次重讀運作中,臨界電壓位於VLSB
與VLSB
+D之間的記憶體單元將會被對應至非常弱的”0”,並編碼為”000”。在第二次重讀運作中,臨界電壓位於VLSB
與VLSB-D之間的記憶體單元將會被對應至非常弱的”1”,並編碼為”100”。在第三次重讀運作中,臨界電壓位於VLSB
+D與VLSB
+2D之間的記憶體單元將會被對應至弱的”0”,並編碼為”001”。在第四次重讀運作中,臨界電壓位於VLSB
-D與VLSB
-2D之間的記憶體單元將會被對應至弱的”1”,並編碼為”101”。在第五次重讀運作中,臨界電壓位於VLSB
+2D與VLSB
+3D之間的記憶體單元將會被對應至強的”0”,並編碼為”010”,。在第六次重讀運作中,臨界電壓位於VLSB
-2D與VLSB
-3D之間的記憶體單元將會被對應至弱的”1”,並編碼為”110”。請注意到,碼字與臨界電壓的對應關係可以任意地決定,只要正負號位元的(硬位元)的可靠度可以藉由不同的碼字來辨識。此外,碼字的碼字長度係三個位元,其係比一個記憶體單元在一般讀取運作與第一到第六此讀取運作中所取得之二進位數字(字串)來得短。舉例來說,一個記憶體單元之臨界電壓係位於VLSB
+2D與VLSB
+3D之間。在一般讀取運作與第一到第六此讀取運作中所取得該記憶體單元之最低有效位元之二進位數字係”0000000”(二進位數字組合BS8)。該二進位數字包含七個位元,其係較碼字的碼字長度長。若錯誤更正解碼器1222需要儲存全部七個位元才能執行錯誤更正運作,而非只需要儲存三個位元,錯誤更正解碼器需要較多之記憶體空間。因此,將在不同讀取運作中所取得之二進位碼字編碼為較短的碼字可以減少記憶體空間,而成本亦可降低。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
1001...記憶體系統
1101...快閃記憶體
1111...記憶體單元
1201...記憶體控制器
1211...控制邏輯電路
1220...錯誤更正電路
1222...錯誤更正解碼器
1223...編碼器
1224...比較單元
1225...判斷單元
1227...儲存裝置
1228...解碼單元
1229...錯誤更正編碼器
第1圖為本發明記憶體系統之第一實施例的示意圖。
第2圖為要被讀取之實體記憶體分頁P_0的第一種臨界電壓分佈的示意圖。
第3圖為要被讀取之實體記憶體分頁P_0的第二種臨界電壓分佈的示意圖。
第4圖為從快閃記憶體1100之一記憶體單元中讀取一軟位元的最低有效位元讀取操作的示意圖。
第5圖係示於第1圖之編碼器1223之方塊圖。
第6圖係說明對讀自快閃記憶體單元的二進位數字進行編碼的示意圖。
第7圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。
第8圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。
第9圖係說明對讀自快閃記憶體單元的二進位數字進行編碼以取得正確資料的示意圖。
第10圖係說明碼字與記憶體單元之對應關係之示意圖。
1000...記憶體系統
1100...快閃記憶體
1110...記憶體單元
1200...記憶體控制器
1210...控制邏輯電路
1220...錯誤更正電路
1222...錯誤更正解碼器
1223...編碼器
1227...儲存裝置
1228...解碼單元
1229...錯誤更正編碼器
Claims (18)
- 一種用以讀取儲存在一快閃記憶體之資料的方法,其中該快閃記憶體包含複數個記憶體單元並藉由將該複數個記憶體單元中之一記憶體單元程式化至2N 個電壓狀態中的一個電壓狀態以儲存N位元資料,該方法包含:控制該快閃記憶體對該記憶體單元執行至少一讀取運作以取得至少一二進位數字以代表該N位元資料之一位元;依據該至少一二進位數字產生一碼字以代表該N位元資料之該位元,其中該碼字係不同於該至少一二進位數字;以及將該碼字提供於一錯誤更正解碼器以執行一錯誤更正運作;其中控制該快閃記憶體對該記憶體單元執行至少一讀取運作以取得該至少一二進位數字以代表該N位元資料之該位元之運作之步驟更包含:控制該快閃記憶體依據一第一臨界電壓對該記憶體單元執行一第一讀取運作以取得該至少一二進位數字之一第一二進位數字;以及其中依據該至少一二進位數字產生該碼字以代表該N位元資料之該位元之步驟更包含:將該第一二進位數字判定為該碼字之一正負號位元;以及產生至少一強度位元以代表該正負號位元之一可靠度。
- 如申請專利範圍第1項所述之用以讀取儲存在一快閃記憶體之資料的方法,其中將該碼字提供於該錯誤更正解碼器以執行該錯誤更正運作之步驟更包含:將該碼字儲存至一緩衝記憶體;以及將儲存在該緩衝記憶體之碼字提供至該錯誤更正解碼器以執行該錯誤更正運作。
- 如申請專利範圍第1項所述之用以讀取儲存在一快閃記憶體之資料的方法,其中產生該至少一強度位元以代表該正負號位元之該可靠度之步驟更包含:將該至少一強度位元設定為一最高可靠度。
- 如申請專利範圍第1項所述之用以讀取儲存在一快閃記憶體之資料的方法,其中控制該快閃記憶體對該記憶體單元執行該至少一讀取運作以取得該至少一二進位數字以代表該N位元資料之該位元之運作之步驟更包含:控制該快閃記憶體依據一第二臨界電壓對該記憶體單元執行一第二讀取運作以取得該至少一二進位數字之一第二二進位數字;以及其中依據該至少一二進位數字產生該碼字以代表該N位元資料之該位元之步驟更包含:比較該第二二進位數字以及該正負號位元以產生該碼字。
- 如申請專利範圍第4項所述之用以讀取儲存在一快閃記憶體之資料的方法,其中比較該第二二進位數字以及該正負號位元以產生該碼字之步驟更包含:當該第二二進位數字係不同於該正負號位元時,更新 該至少一強度位元以調整該正負號位元之該可靠度。
- 如申請專利範圍第4項所述之用以讀取儲存在一快閃記憶體之資料的方法,其中比較該第二二進位數字以及該正負號位元以產生該碼字之步驟更包含:當該至少一強度位元已經被更新,維持該至少一強度位元。
- 如申請專利範圍第4項所述之用以讀取儲存在一快閃記憶體之資料的方法,其中控制該快閃記憶體對該記憶體單元執行該至少一讀取運作以取得該至少一二進位數字以代表該N位元資料之該位元之運作之步驟更包含:控制該快閃記憶體依據一第三臨界電壓對該快閃記憶單元執行一第三讀取運作以取得一第三二進位數字,其中該第一臨界電壓與第二臨界電壓之一第一電壓差係小於該第二臨界電壓與第三臨界電壓之一第二電壓差;以及其中依據該至少一二進位數字產生該碼字以代表該N位元資料之該位元之步驟更包含:當該第三二進位數字係不同於該正負號位元時,將該至少一強度位元更新為一較高可靠度。
- 如申請專利範圍第1項所述之用以讀取儲存在一快閃記憶體之資料的方法,其中該二進位數字包含M個二進位數字,而M係大於該碼字之一碼字長度。
- 如申請專利範圍第8項所述之用以讀取儲存在一快閃記憶體之資料的方法,其中該M個二進位數字係得自依據M個不同臨界電壓之M次讀取運作。
- 一種用以讀取儲存在一快閃記憶體之資料之記憶 體控制器,其中該快閃記憶體包含複數個記憶體單元並藉由將該複數個記憶體單元中之一記憶體單元程式化至2N 個電壓狀態中的一個電壓狀態以儲存N位元資料,該記憶體控制器包含:一控制邏輯電路,用以控制該快閃記憶體對該記憶體單元執行至少一讀取運作以取得至少一二進位數字以代表該N位元資料之一位元;一編碼器,耦接至該控制邏輯電路,用以依據該至少一二進位數字產生一碼字以代表該N位元資料之該位元,其中該碼字係不同於該至少一二進位數字;以及一緩衝記憶體,耦接至該編碼器,用以儲存該碼字並將該碼字提供於一錯誤更正解碼器以執行一錯誤更正運作;其中該控制邏輯電路係更用於控制該快閃記憶體依據一第一臨界電壓對該記憶體單元執行一第一讀取運作以取得該至少一二進位數字之一第一二進位數字;以及其中該編碼器係用更於將該第一二進位數字判定為該碼字之一正負號位元,產生至少一強度位元以代表該正負號位元之一可靠度。
- 如申請專利範圍第10項所述之用以讀取儲存在一快閃記憶體之資料之記憶體控制器,其中該編碼器係更用於將該至少一強度位元設定為一最高可靠度。
- 如申請專利範圍第10項所述之用以讀取儲存在一快閃記憶體之資料之記憶體控制器,其中該控制邏輯電路係更用於控制該快閃記憶體依據一第二臨界電壓對該記憶 體單元執行一第二讀取運作以取得該至少一二進位數字之一第二二進位數字;以及其中該編碼器係更用於比較該第二二進位數字以及該正負號位元以產生該碼字。
- 如申請專利範圍第12項所述之用以讀取儲存在一快閃記憶體之資料之記憶體控制器,其中該編碼器係更用於當該第二二進位數字係不同於該正負號位元時,更新該至少一強度位元以調整該正負號位元之該可靠度。
- 如申請專利範圍第12項所述之用以讀取儲存在一快閃記憶體之資料之記憶體控制器,其中該編碼器係更用於當該至少一強度位元已經被更新,維持該至少一強度位元。
- 如申請專利範圍第12項所述之用以讀取儲存在一快閃記憶體之資料之記憶體控制器,其中該控制邏輯電路係更用於控制該快閃記憶體依據一第三臨界電壓對該快閃記憶單元執行一第三讀取運作以取得一第三二進位數字,其中該第一臨界電壓與第二臨界電壓之一第一電壓差係小於該第二臨界電壓與第三臨界電壓之一第二電壓差;以及其中該編碼器係更用於當該第三二進位數字係不同於該正負號位元時,將該至少一強度位元更新為一較高可靠度。
- 如申請專利範圍第10項所述之用以讀取儲存在一快閃記憶體之資料之記憶體控制器,其中該二進位數字包含M個二進位數字,而M係大於該碼字之一碼字長度。
- 如申請專利範圍第16項所述之用以讀取儲存在一 快閃記憶體之資料之記憶體控制器,其中該M個二進位數字係得自依據M個不同臨界電壓之M次讀取運作。
- 一種用以讀取儲存在一快閃記憶體之資料之系統,其中該快閃記憶體包含複數個記憶體單元並藉由將該複數個記憶體單元中之一記憶體單元程式化至2N 個電壓狀態中的一個電壓狀態以儲存N位元資料,該系統包含:一控制邏輯電路,用以控制該快閃記憶體對該記憶體單元執行至少一讀取運作以取得至少一二進位數字以代表該N位元資料之一位元;一編碼器,耦接至該控制邏輯電路,用以依據該至少一二進位數字產生一碼字以代表該N位元資料之該位元,其中該碼字係不同於該至少一二進位數字;以及一緩衝記憶體,耦接至該編碼器,用以儲存該碼字並將該碼字提供於一錯誤更正解碼器以執行一錯誤更正運作;其中該控制邏輯電路係更用於控制該快閃記憶體依據一第一臨界電壓對該記憶體單元執行一第一讀取運作以取得該至少一二進位數字之一第一二進位數字;以及其中該編碼器係用更於將該第一二進位數字判定為該碼字之一正負號位元,產生至少一強度位元以代表該正負號位元之一可靠度。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/351,143 US9093154B2 (en) | 2012-01-16 | 2012-01-16 | Method, memory controller and system for reading data stored in flash memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201331940A TW201331940A (zh) | 2013-08-01 |
TWI514388B true TWI514388B (zh) | 2015-12-21 |
Family
ID=48755504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101110025A TWI514388B (zh) | 2012-01-16 | 2012-03-23 | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9093154B2 (zh) |
CN (1) | CN103208306B (zh) |
TW (1) | TWI514388B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI667656B (zh) * | 2017-08-08 | 2019-08-01 | 慧榮科技股份有限公司 | 解碼方法及相關的快閃記憶體控制器與電子裝置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978147B (zh) * | 2014-04-03 | 2018-09-07 | 光宝科技股份有限公司 | 固态储存装置及其错误更正控制方法 |
TWI492234B (zh) | 2014-04-21 | 2015-07-11 | Silicon Motion Inc | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 |
TWI530959B (zh) | 2014-06-17 | 2016-04-21 | 慧榮科技股份有限公司 | 用來控制一記憶裝置之方法以及記憶裝置與控制器 |
US10198316B2 (en) | 2015-10-28 | 2019-02-05 | Avago Technologies International Sales Pte. Limited | Systems and methods for efficient flash memory access |
US10108489B2 (en) | 2015-10-28 | 2018-10-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for efficient soft data based flash memory data recovery |
US10204006B2 (en) | 2015-10-28 | 2019-02-12 | Avago Technologies International Sales Pte. Limited | Systems and methods for side data based soft data flash memory access |
US20170329684A1 (en) * | 2016-05-13 | 2017-11-16 | Synology Incorporated | Method and apparatus for performing data recovery in redundant storage system |
TWI625715B (zh) * | 2016-05-31 | 2018-06-01 | 瑞鼎科技股份有限公司 | 顯示驅動裝置及其運作方法 |
US10290353B2 (en) * | 2016-09-06 | 2019-05-14 | Western Digital Technologies, Inc. | Error mitigation for 3D NAND flash memory |
KR20180096845A (ko) * | 2017-02-20 | 2018-08-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
CN109308885A (zh) * | 2018-12-11 | 2019-02-05 | 惠科股份有限公司 | 提升信号传输速率的方法及显示面板 |
TWI697000B (zh) * | 2019-12-09 | 2020-06-21 | 慧榮科技股份有限公司 | 記憶體控制器及快閃記憶體的存取方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163023A1 (en) * | 2007-01-03 | 2008-07-03 | Si-Hoon Hong | ECC controller for use in flash memory device and memory system including the same |
US20100138594A1 (en) * | 2007-05-30 | 2010-06-03 | Memoright Memoritech (Shenzhen) Co., Ltd. | Flash memory data read/write processing method |
US20110119560A1 (en) * | 2007-01-08 | 2011-05-19 | Chang-Duck Lee | Flash Memory Device Error Correction Code Controllers and Related Methods and Memory Systems |
US20110219288A1 (en) * | 2010-03-05 | 2011-09-08 | Samsung Electronics Co., Ltd | Method of operating nonvolatile memory device, method of operating controller, and method of operating memory system including the same |
US20110216588A1 (en) * | 2010-03-02 | 2011-09-08 | Samsung Electronics Co., Ltd. | Multi-bit cell memory devices using error correction coding and methods of operating the same |
US20110258514A1 (en) * | 2010-01-28 | 2011-10-20 | Sandisk Il Ltd. | Overlapping error correction operations |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100626391B1 (ko) * | 2005-04-01 | 2006-09-20 | 삼성전자주식회사 | 원낸드 플래시 메모리 및 그것을 포함한 데이터 처리시스템 |
KR101425958B1 (ko) * | 2007-09-06 | 2014-08-04 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법 |
-
2012
- 2012-01-16 US US13/351,143 patent/US9093154B2/en active Active
- 2012-03-23 TW TW101110025A patent/TWI514388B/zh active
- 2012-05-15 CN CN201210149294.5A patent/CN103208306B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080163023A1 (en) * | 2007-01-03 | 2008-07-03 | Si-Hoon Hong | ECC controller for use in flash memory device and memory system including the same |
US20110119560A1 (en) * | 2007-01-08 | 2011-05-19 | Chang-Duck Lee | Flash Memory Device Error Correction Code Controllers and Related Methods and Memory Systems |
US20100138594A1 (en) * | 2007-05-30 | 2010-06-03 | Memoright Memoritech (Shenzhen) Co., Ltd. | Flash memory data read/write processing method |
US20110258514A1 (en) * | 2010-01-28 | 2011-10-20 | Sandisk Il Ltd. | Overlapping error correction operations |
US20110216588A1 (en) * | 2010-03-02 | 2011-09-08 | Samsung Electronics Co., Ltd. | Multi-bit cell memory devices using error correction coding and methods of operating the same |
US20110219288A1 (en) * | 2010-03-05 | 2011-09-08 | Samsung Electronics Co., Ltd | Method of operating nonvolatile memory device, method of operating controller, and method of operating memory system including the same |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI667656B (zh) * | 2017-08-08 | 2019-08-01 | 慧榮科技股份有限公司 | 解碼方法及相關的快閃記憶體控制器與電子裝置 |
Also Published As
Publication number | Publication date |
---|---|
CN103208306B (zh) | 2016-05-18 |
CN103208306A (zh) | 2013-07-17 |
US20130182503A1 (en) | 2013-07-18 |
US9093154B2 (en) | 2015-07-28 |
TW201331940A (zh) | 2013-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI514388B (zh) | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 | |
TWI466123B (zh) | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與裝置 | |
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20160350179A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
TWI576847B (zh) | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 | |
US10679707B2 (en) | Voltage adjusting method, memory controlling circuit unit and memory storage device | |
US10318379B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20190163363A1 (en) | Data accessing method, memory controlling circuit unit and memory storage device | |
TWI725368B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US10447314B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
TWI681396B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TW202029202A (zh) | 解碼方法、記憶體控制電路單元與記憶體儲存裝置 | |
US11190217B2 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
CN107240419B (zh) | 读取快闪存储器中所储存的数据的方法、存储器控制器与系统 | |
TWI514404B (zh) | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 | |
TWI571885B (zh) | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與系統 | |
TWI721842B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113496752B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TWI742509B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN113138947B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN111324478B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device | |
US11145372B2 (en) | Decoding method, memory controlling circuit unit, and memory storage device | |
CN111435604B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN111258791B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |