TW201521032A - 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器 - Google Patents

應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器 Download PDF

Info

Publication number
TW201521032A
TW201521032A TW102143853A TW102143853A TW201521032A TW 201521032 A TW201521032 A TW 201521032A TW 102143853 A TW102143853 A TW 102143853A TW 102143853 A TW102143853 A TW 102143853A TW 201521032 A TW201521032 A TW 201521032A
Authority
TW
Taiwan
Prior art keywords
data
error correction
correction code
flash memory
random data
Prior art date
Application number
TW102143853A
Other languages
English (en)
Other versions
TWI527048B (zh
Inventor
Chen-Yu Weng
Original Assignee
Silicon Motion 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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to TW102143853A priority Critical patent/TWI527048B/zh
Priority to CN201711172528.7A priority patent/CN107845405B/zh
Priority to CN201410010124.8A priority patent/CN104681100B/zh
Priority to US14/551,060 priority patent/US9703627B2/en
Publication of TW201521032A publication Critical patent/TW201521032A/zh
Application granted granted Critical
Publication of TWI527048B publication Critical patent/TWI527048B/zh
Priority to US15/608,982 priority patent/US10521292B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection 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/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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/02Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

一種應用於一快閃記憶體裝置的自我測試方法包含有:產生一輸入資料;對該輸入資料進行編碼以產生相對應的一錯誤更正碼;使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體裝置中一快閃記憶體的一資料頁所得到的一軟資訊;以及對該軟資訊進行解碼以得到一解碼結果。

Description

應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及 相關的控制器
本發明係有關於快閃記憶體,尤指一種應用於快閃記憶體裝置的自我測試方法。
快閃記憶體可透過電子式的抹除(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)便會有所改變,因此,使用原本的控制閘極電壓設定(亦即臨界電壓設定)來讀取記憶體單元中所儲存的資訊可能會因為改變後的臨界變壓分佈而無法正確地獲得所儲存的資訊。
上述有關於快閃記憶體單元中的記憶體單元的臨界電壓分佈改變或偏移通常會造成資料讀取上的錯誤,而此一問題可以藉由使用錯誤更正碼(Error Correction Code,ECC)與軟解碼(soft decode)方式來獲得改善。然而,由於目前快閃記憶體在製程上的縮減,讀取快閃記憶體的資料並進行軟解碼的過程也相對更容易產生錯誤,因此,快閃記憶體裝置在出廠前需要進行測試以判斷其讀取與解碼品質,因此,如何提供一個便宜且有效率的測試方法是一個重要的課題。
因此,本發明的目的之一在於提供一種應用於快閃記憶體裝置的 自我測試方法,其具有很小的晶片面積,且可以產生大量且十分類似實際自快閃記憶體中所讀取的資料,以供快閃記憶體裝置在出廠前進行測試以判斷其讀取與解碼品質。
依據本發明一實施例,一種應用於一快閃記憶體裝置的錯誤更正碼單元包含有一編碼器、一自我測試電路以及一解碼器,其中該編碼器用以對所接收到的一輸入資料進行編碼以產生相對應的一錯誤更正碼;該自我測試電路係耦接於該編碼器,且用來產生該輸入資料至該編碼器,接收來自該編碼器的該錯誤更正碼,並使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體裝置中一快閃記憶體的一資料頁所得到的一軟資訊;以及該解碼器係耦接於該自我測試電路,且用來接收該軟資訊,並對該軟資訊進行解碼以得到一解碼結果。
依據本發明另一實施例,一種應用於一快閃記憶體裝置的自我測試方法包含有:產生一輸入資料;對該輸入資料進行編碼以產生相對應的一錯誤更正碼;使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體裝置中一快閃記憶體的一資料頁所得到的一軟資訊;以及對該軟資訊進行解碼以得到一解碼結果。
依據本發明另一實施例,係揭露一種記憶裝置之控制器,其中該控制器係用來存取一快閃記憶體,且該控制器包含有一唯讀記憶體、一微處理器以及一錯誤更正碼單元,其中該唯讀記憶體用來儲存一程式碼;該微處理器用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊;以及該錯誤更正碼單元包含有一編碼器、一自我測試電路以及一解碼器,其中該編碼器用以對所接收到的一輸入資料進行編碼以產生相對應的一錯誤更正碼;該自我測試電路係耦接於該編碼器,且用來產生該輸入資料至該編碼器,接收來自該編碼器的該錯誤更正碼,並使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體裝置中一快閃記憶體的一資料頁所得到的一軟資訊;以及該解碼器係耦接於該自我測試電路,且用來接收該軟資訊,並 對該軟資訊進行解碼以得到一解碼結果。
100‧‧‧記憶裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧快閃記憶體
130‧‧‧錯誤更正碼單元
210‧‧‧編碼器
220‧‧‧自我測試電路
222‧‧‧隨機資料產生器
224‧‧‧雜訊產生器
226、242‧‧‧緩衝器
228‧‧‧控制訊號有限狀態機
230‧‧‧多工器
240‧‧‧數位訊號處理器
244‧‧‧解碼器
302、304‧‧‧曲線
410‧‧‧加擾器
412_1~412_12‧‧‧加法器
420‧‧‧種子儲存單元
R1~R13‧‧‧暫存器
FF1~FF13‧‧‧正反器
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之錯誤更正碼單元的示意圖。
第3圖為讀取快閃記憶體中一記憶體單元之軟資訊的示意圖。
第4圖為依據本發明一實施例之隨機資料產生器的示意圖。
第5圖為依據本發明一實施例之應用於一快閃記憶體裝置的自我測試方法的流程圖。
請參考第1圖,第1圖為依據本發明一實施例之一種記憶裝置100的示意圖,其中本實施例之記憶裝置100尤其係為可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)。記憶裝置100包含有一快閃記憶體(Flash Memory)120以及一控制器,該控制器可為一記憶體控制器110,且係用來存取快閃記憶體120。依據本實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體120之存取(Access)。此外,控制邏輯114包含有一錯誤更正碼(Error Correcting Code,ECC)單元130。
於典型狀況下,快閃記憶體120包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體120進行複製、抹除、合併資料等運作係以區塊為單位來進行複製、抹除、合併資料。另外,一區塊可記錄特定數量的資料頁(Page),其中該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110) 對快閃記憶體120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。
另外,請參考第2圖,第2圖為依據本發明一實施例之錯誤更正碼單元130的示意圖。如第2圖所示,錯誤更正碼單元130包含有一編碼器210、一自我測試電路220、一多工器230以及一數位訊號處理器240,其中自我測試電路220包含有一隨機資料產生器222、一雜訊產生器224、一緩衝器226以及一控制訊號有限狀態機228,且數位訊號處理器240包含有一緩衝器242以及一解碼器244。其中,錯誤更正碼單元130的操作具有兩種模式,自我測試模式以及正常操作模式,當錯誤更正碼單元130處於自我測試模式時,自我測試電路220會產生致能訊號en至多工器230以使得數位訊號處理器240可以接收來自自我測試電路220中的資料,而自我測試電路220與編碼器210會產生測試資料至數位訊號處理器240中,並據以輸出所需要的測試結果;而當錯誤更正碼單元130處於正常操作模式時,自我測試電路220的全部或部分功能會關閉,多工器230則會讓數位訊號處理器240接收記憶體控制器110於正常操作時所輸入的輸入控制訊號Vc_normal,並產生輸出訊號Vout_normal至記憶體控制器110中的其他電路。以下將詳細敘述這兩種模式的操作細節。
首先,自我測試模式是用來測試數位訊號處理器240中的解碼器244的功能是否正常,亦即測試當自快閃記憶體120中所讀取的資料品質很差時,解碼器244是否可以解碼出正確的資料。於本實施例中,為了節省記憶體的使用量以及充分測試解碼器244的功能,自我測試電路220使用隨機資料產生器222與雜訊產生器224以使用很低的資料量來大量產生非常類似 實際自快閃記憶體120中所讀取的資料,特別是自快閃記憶體120中所讀取的“軟資訊”。
舉例說明“軟資訊”的意義,請參考第3圖,第3圖為讀取快閃記憶體120中一記憶體單元之軟資訊的示意圖,其中該記憶體單元係以一浮動閘極電晶體來實作,且曲線302是用來表示當該記憶體單元記錄資訊“0”時的臨界電壓機率分佈圖,而曲線304是用來表示當該記憶體單元記錄資訊“1”時的臨界電壓機率分佈圖,其中由於寫入/抹除次數(program/erase count,P/E count)及/或資料保留時間(retention time)的緣故,記憶體單元的臨界電壓分佈(亦即曲線302與304)可能會改變或偏移,甚至曲線302與304會重疊,因此,記憶體控制器110會使用7種不同的電壓V1~V7施加在該記憶體單元(浮動閘極電晶體)的閘極,並藉由是否偵測到該記憶體單元的電流來產生對應的位元值。舉例來說,假設當施加電壓V1、V3、V5、V7時該記憶體單元有電流產生(亦即電壓V1、V3、V5、V7大於該記憶體單元的臨界電壓值),且當施加電壓V2、V4、V6時該記憶體單元沒有電流產生(亦即電壓V2、V4、V6小於該記憶體單元的臨界電壓值),則自該記憶體單元所讀取的軟資訊為“1010101”;另外,假設當施加電壓V1~V7時該記憶體單元均有電流產生(亦即電壓V1~V7均大於該記憶體單元的臨界電壓值),則自該記憶體單元所讀取的軟資訊為“1111111”。需注意的是,以上用來解釋“軟資訊”的細節僅為一範例說明,於本發明之其他實施例中,所施加之電壓可以具有其他數量,而不一定是七個。
此外,在快閃記憶體120的結構中,快閃記憶體120包含有多個區塊(block),每一個區塊包含有多個資料頁(page),每一個資料頁包含有多個區段(sector),而每一個區段則包含有多個記憶體單元,其中“區塊”為最小抹除單位,“資料頁”為最小讀取寫入單位(亦即讀取資料頁時一定要一次讀取整個資料頁的內容),因此,第2圖中的隨機資料產生器222與雜訊產生器224是用來模擬產生讀取一個資料頁中所有記憶體單元的軟資訊,詳細 來說,隨機資料產生器222與雜訊產生器224首先會模擬記憶體控制器110使用電壓V1來讀取一資料頁中的每一個記憶體單元,以產生該資料頁的第一筆資料;接著,隨機資料產生器222與雜訊產生器224模擬記憶體控制器110使用電壓V2來讀取該資料頁中的每一個記憶體單元,以產生該資料頁的第二筆資料;以此類推,隨機資料產生器222與雜訊產生器224模擬記憶體控制器110分別使用電壓V3、V4、V5、V5、V7來讀取該資料頁中的每一個記憶體單元,以分別產生該資料頁的第三、四、五、六、七筆資料,而該資料頁的第一至七筆資料則構成該資料頁中每一個記憶體單元的軟資訊。
詳細來說,請參考第4圖,第4圖為依據本發明一實施例之隨機資料產生器222的示意圖。如第4圖所示,隨機資料產生器222包含有一加擾器410以及一種子儲存單元420,其中加擾器410包含有多個暫存器R1~R13與多個加法器412_1~412_12,且種子儲存單元420包含有多個與暫存器R1~R13相連的正反器FF1~FF13。在以下的說明中,隨機資料產生器222係以第4圖所示之電路架構來進行說明,然而,第4圖所示之隨機資料產生器222的電路架構並非作為本發明的限制,只要可產生類似的資料,隨機資料產生器222中的暫存器、加法器以及正反器的數量可以改變,且隨機資料產生器222的電路也可以有其他的實現方式。
當工程師準備讓錯誤更正碼單元130進入自我測試模式時,工程師會將一自我測試開始訊號fb_strt輸入至第2圖的自我測試電路220中,而當自我測試電路220接收到自我測試開始訊號fb_strt後,控制訊號有限狀態機228便會產生一第一種子資料至隨機資料產生器222中的種子儲存單元420,於本實施例中,該第一種子資料可以為“0000000000001”,且這13個位元值分別儲存於正反器FF1~FF13中。接著,加擾器410便會開始依據該第一種子資料來循序產生第一筆隨機資料,且在產生第一筆隨機資料的過程中,正反器FF1~FF13中所儲存的種子資訊也會持續變化。
隨機資料產生器222所產生的第一筆隨機資料接著進入編碼器 210以及雜訊產生器224中,其中編碼器210會將第一筆隨機資料進行編碼以產生相對應的錯誤更正碼(Error Correction Code)ECC之後,再輸入至雜訊產生器224。簡單來說,雜訊產生器224所接收到的資料即為第一筆隨機資料及其相對應的錯誤更正碼,而於本發明一實施例中,雜訊產生器224所接收到的資料類似於快閃記憶體120中一個資料頁中的資料內容(包含多組資料即相對應的錯誤更正碼),舉例來說,假設快閃記憶體120中一個資料頁包含8個區段,且每一個區段為1KB(kilobyte),且這1KB的資料包含有120為元的錯誤更正碼,則雜訊產生器224所接收到的資料就類似上述這個資料頁的內容。接著,雜訊產生器224將所接收到的第一筆隨機資料及其相對應的錯誤更正碼加上雜訊成分(亦即加上一個錯誤量),以模擬實際在讀取快閃記憶體120時的狀況,舉例來說,雜訊產生器224可以是一個加性白高斯雜訊(Additive White Gaussian Noise)電路,其可以改變所接收到資料的少部分內容,以使得所接收到資料具有一定比例的錯誤量,例如使上述一個資料頁具有0.01%的列位元錯誤率(row bit error rate),亦即一個資料頁中大約具有90個錯誤位元值。
如上所述,雜訊產生器224所產生的資料即可被視為第3圖中使用電壓V1來讀取一資料頁的結果,而雜訊產生器224所產生的資料經由緩衝器226、控制訊號有限狀態機228與多工器230輸入至數位訊號處理器240中的緩衝器242。
此外,雜訊產生器224會將所輸出之資料中錯誤位元的位置及其位元值記錄下來(舉例來說,可以記錄至控制訊號有限狀態機228中),以供後續使用。
接著,控制訊號有限狀態機228再次產生該第一種子資料(亦即上述的“0000000000001”)至隨機資料產生器222中的種子儲存單元420,同樣地,隨機資料產生器222依據該第一種子資料產生第二筆隨機資料,其中由於第二筆隨機資料與上述之第一筆隨機資料係使用相同的種子資料來產 生,因此,第二筆隨機資料實際上會完全等於第一筆隨機資料。接著,隨機資料產生器222將所產生的該第二筆隨機資料輸入至編碼器210中以產生相對應的錯誤更正碼,而雜訊產生器224接著接收第二筆隨機資料及其相對應的錯誤更正碼。雜訊產生器224接著對第二筆隨機資料及其相對應的錯誤更正碼加入雜訊以模擬第3圖中使用電壓V2來讀取資料頁的結果,由於雜訊產生器224此時是模擬使用電壓V2來讀取同一個資料頁,因此其錯誤位元值的位置與先前模擬使用電壓V1來讀取資料頁時的錯誤位元值位置具有相依性,因此,控制訊號有限狀態機228會將先前所儲存之錯誤位元的位置其位元值傳送給雜訊產生器224,而雜訊產生器224則利用這些資訊來將第二筆隨機資料及其錯誤更正碼加上雜訊後輸出。
如上所述,雜訊產生器224所產生的資料即可被視為第3圖中使用電壓V2來讀取一資料頁的結果,而雜訊產生器224所產生的資料經由緩衝器226、控制訊號有限狀態機228與多工器230輸入至數位訊號處理器240中的緩衝器242。
此外,雜訊產生器224會將所輸出之資料中錯誤位元的位置及其位元值記錄下來(舉例來說,可以記錄至控制訊號有限狀態機228中),以供後續使用。
以此類推,隨機資料產生器222會再次利用該第一種子資料分別產生第三筆隨機資料、第四筆隨機資料、第五筆隨機資料、第六筆隨機資料、第七筆隨機資料,其分別被編碼器210與雜訊產生器224處理以模擬類似第3圖中使用電壓V3、V4、V5、V6、V7來讀取同一資料頁的結果。雜訊產生器224所產生的這些資料經由緩衝器226、控制訊號有限狀態機228與多工器230輸入至數位訊號處理器240中的緩衝器242。
在數位訊號處理器240接收到模擬類似第3圖中使用電壓V1~V7來讀取同一資料頁的結果後,解碼器244對這些資料進行類似使用低密度校驗碼(Low Density Parity Check,LDPC)解碼的軟解碼操作,以測試是否可 以解碼成功。
上述有關於自我測試電路220與數位訊號處理器240的操作可視為模擬記憶體控制器110實際在讀取快閃記憶體120中一資料頁的資料(軟資訊),並加以解碼的操作。
接著,自我測試電路220重複以上的操作,並模擬產生多個不同資料頁的軟資訊至解碼器244進行解碼。詳細來說,控制訊號有限狀態機228可以產生一第二種子資料(例如“0000000000010”)至隨機資料產生器222中的種子儲存單元420,並依照上述步驟以產生另一資料頁的軟資訊至解碼器244進行解碼;接著控制訊號有限狀態機228可以產生一第三種子資料(例如“0000000000011”)至隨機資料產生器222中的種子儲存單元420,並依照上述步驟以產生另一資料頁的軟資訊至解碼器244進行解碼,...,以此類推,自我測試電路220可以依據工程師的設定來模擬產生多個不同資料頁(例如1萬個資料頁)的軟資訊至解碼器244進行解碼。
當工程師認為需要停止測試時,可以藉由輸入一自我測試結束訊號fb_stop至自我測試電路220中以停止產生資料至數位訊號處理器240,而此時自我測試電路220會輸出一測試結束訊號fb_done、一測試區段數量fb_cdwd_cnt以及區段解碼失敗數量fb_fail_cnt以供工程師參考。
如上所述,由於第2圖中的自我測試電路220僅需要資料量很低的種子資料便可以模擬產生很大量的資料頁資料,因此,自我測試電路220的晶片面積變可以大幅度的減少以節省成本,且由於所模擬產生的資料具有很高的真實性,因此也可以增加測試的可靠度。
另一方面,當錯誤更正碼單元130處於正常操作模式時,自我測試電路220的全部或部分功能會關閉,但此時第2圖中的編碼器210與解碼器244仍會正常操作,亦即編碼器210會將所需要寫入至快閃記憶體120中的資料進行編碼後再寫入至快閃記憶體120中,而解碼器244則用來接收輸入控制訊號Vc_normal,並對自快閃記憶體120中所讀取的資料進行解碼。
另外,請參考第5圖,第5圖為依據本發明一實施例之應用於一快閃記憶體裝置的自我測試方法的流程圖。參考以上針對2~4圖的敘述,本發明之自我測試方法的流程如下所示:步驟500:產生一輸入資料;步驟502:對該輸入資料進行編碼以產生相對應的一錯誤更正碼;步驟504:使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體裝置中一快閃記憶體的一資料頁所得到的一軟資訊;以及步驟506:對該軟資訊進行解碼以得到一解碼結果。
簡要歸納本發明,於本發明之應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器中,由於可以利用資料量很少的種子資料來模擬產生讀取該快閃記憶體裝置中一快閃記憶體的一資料頁所得到的一軟資訊,因此,相關的自我測試電路具有很小的晶片面積,且可以產生大量且十分類似實際自快閃記憶體中所讀取的資料,以供快閃記憶體裝置在出廠前進行測試以判斷其讀取與解碼品質,因此,本發明所提供的測試方法及相關電路確實具有成本低以及有效率的優點。
130‧‧‧錯誤更正碼單元
210‧‧‧編碼器
220‧‧‧自我測試電路
222‧‧‧隨機資料產生器
224‧‧‧雜訊產生器
226、242‧‧‧緩衝器
228‧‧‧控制訊號有限狀態機
230‧‧‧多工器
240‧‧‧數位訊號處理器
244‧‧‧解碼器

Claims (16)

  1. 一種應用於一快閃記憶體裝置的錯誤更正碼單元,包含有:一編碼器,用以對所接收到的一輸入資料進行編碼以產生相對應的一錯誤更正碼;一自我測試電路,耦接於該編碼器,用來產生該輸入資料至該編碼器,接收來自該編碼器的該錯誤更正碼,並使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體裝置中一快閃記憶體的一資料頁所得到的一軟資訊;以及一解碼器,耦接於該自我測試電路,用來接收該軟資訊,並對該軟資訊進行解碼以得到一解碼結果。
  2. 如申請專利範圍第1項所述之錯誤更正碼單元,其中該自我測試電路包含有:一隨機資料產生器,用來產生複數筆隨機資料以作為該輸入資料;以及一雜訊產生器,耦接於該隨機資料產生器,用來將該複數筆隨機資料與該錯誤更正碼加上雜訊成分,以模擬產生讀取該快閃記憶體中該資料頁所得到的該軟資訊。
  3. 如申請專利範圍第2項所述之錯誤更正碼單元,其中該隨機資料產生器使用同一個種子資料來分別產生該複數筆隨機資料,其中該複數筆隨機資料中每一筆隨機資料的內容均相同。
  4. 如申請專利範圍第3項所述之錯誤更正碼單元,其中該雜訊產生器在對每一筆隨機資料加上雜訊成分時會同時記錄錯誤位元的位置及其位元值,而該雜訊產生器在對第N筆隨機資料加上雜訊成分時會參考該雜訊產生器在對第1~(N-1)筆隨機資料加上雜訊成分時所記錄之錯誤位元的位置及其位元值,其中N大於1。
  5. 如申請專利範圍第1項所述之錯誤更正碼單元,其中該軟資訊包含使用 複數個不同電壓值來分別讀取該資料頁所得到的資訊。
  6. 一種應用於一快閃記憶體裝置的自我測試方法,包含有:產生一輸入資料;對該輸入資料進行編碼以產生相對應的一錯誤更正碼;使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體裝置中一快閃記憶體的一資料頁所得到的一軟資訊;以及對該軟資訊進行解碼以得到一解碼結果。
  7. 如申請專利範圍第6項所述之自我測試方法,其中產生該輸入資料的步驟包含有:產生複數筆隨機資料以作為該輸入資料。
  8. 如申請專利範圍第7項所述之自我測試方法,其中產生該複數筆隨機資料以作為該輸入資料的步驟包含有:使用同一個種子資料來分別產生該複數筆隨機資料,其中該複數筆隨機資料中每一筆隨機資料的內容均相同。
  9. 如申請專利範圍第7項所述之自我測試方法,其中使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體中該資料頁所得到的該軟資訊的步驟包含有:將該複數筆隨機資料與該錯誤更正碼加上雜訊成分,以模擬產生讀取該快閃記憶體中該資料頁所得到的該軟資訊。
  10. 如申請專利範圍第9項所述之自我測試方法,其中將該複數筆隨機資料與該錯誤更正碼加上雜訊成分,以模擬產生讀取該快閃記憶體中該資料頁所得到的該軟資訊的步驟包含有:當對每一筆隨機資料加上雜訊成分時,同時記錄錯誤位元的位置及其位元值;參考該雜訊產生器在對第1~(N-1)筆隨機資料加上雜訊成分時所記錄之錯誤位元的位置及其位元值,以對第N筆隨機資料加上雜訊成分,其中 N大於1。
  11. 如申請專利範圍第6項所述之自我測試方法,其中該軟資訊包含使用複數個不同電壓值來分別讀取該資料頁所得到的資訊。
  12. 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),且該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊;以及一錯誤更正碼單元,耦接於該微處理器,其中該錯誤更正碼單元包含有:一編碼器,用以對所接收到的一輸入資料進行編碼以產生相對應的一錯誤更正碼;一自我測試電路,耦接於該編碼器,用來產生該輸入資料至該編碼器,接收來自該編碼器的該錯誤更正碼,並使用該輸入資料與該錯誤更正碼來模擬產生讀取該快閃記憶體中一資料頁所得到的一軟資訊;以及一解碼器,耦接於該自我測試電路,用來接收該軟資訊,並對該軟資訊進行解碼以得到一解碼結果。
  13. 如申請專利範圍第12項所述之控制器,其中該自我測試電路包含有:一隨機資料產生器,用來產生複數筆隨機資料以作為該輸入資料;以及一雜訊產生器,耦接於該隨機資料產生器,用來將該複數筆隨機資料與該錯誤更正碼加上雜訊成分,以模擬產生讀取該快閃記憶體中該資料頁所得到的該軟資訊。
  14. 如申請專利範圍第13項所述之控制器,其中該隨機資料產生器使用同一個種子資料來分別產生該複數筆隨機資料,其中該複數筆隨機資料中每一筆隨機資料的內容均相同。
  15. 如申請專利範圍第14項所述之控制器,其中該雜訊產生器在對每一筆隨 機資料加上雜訊成分時會同時記錄錯誤位元的位置及其位元值,而該雜訊產生器在對第N筆隨機資料加上雜訊成分時會參考該雜訊產生器在對第1~(N-1)筆隨機資料加上雜訊成分時所記錄之錯誤位元的位置及其位元值,其中N大於1。
  16. 如申請專利範圍第12項所述之控制器,其中該軟資訊包含使用複數個不同電壓值來分別讀取該資料頁所得到的資訊。
TW102143853A 2013-11-29 2013-11-29 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器 TWI527048B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
TW102143853A TWI527048B (zh) 2013-11-29 2013-11-29 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器
CN201711172528.7A CN107845405B (zh) 2013-11-29 2014-01-09 用于闪存装置的错误更正码单元、自我测试方法及控制器
CN201410010124.8A CN104681100B (zh) 2013-11-29 2014-01-09 用于闪存装置的错误更正码单元、自我测试方法及控制器
US14/551,060 US9703627B2 (en) 2013-11-29 2014-11-23 Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information
US15/608,982 US10521292B2 (en) 2013-11-29 2017-05-30 Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102143853A TWI527048B (zh) 2013-11-29 2013-11-29 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器

Publications (2)

Publication Number Publication Date
TW201521032A true TW201521032A (zh) 2015-06-01
TWI527048B TWI527048B (zh) 2016-03-21

Family

ID=53265881

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102143853A TWI527048B (zh) 2013-11-29 2013-11-29 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器

Country Status (3)

Country Link
US (2) US9703627B2 (zh)
CN (2) CN104681100B (zh)
TW (1) TWI527048B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI677876B (zh) * 2018-10-12 2019-11-21 慧榮科技股份有限公司 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法
TWI697906B (zh) * 2018-10-12 2020-07-01 慧榮科技股份有限公司 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI575531B (zh) * 2015-08-10 2017-03-21 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TWI611405B (zh) * 2015-11-25 2018-01-11 旺宏電子股份有限公司 將資料自記憶體寫回儲存裝置的方法及應用其的資料存取系統
TWI595498B (zh) * 2016-01-20 2017-08-11 大心電子(英屬維京群島)股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10270471B2 (en) * 2016-08-02 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. Memory system having ECC self-checking function and associated method
CN107918571B (zh) * 2016-10-08 2021-04-30 上海宝存信息科技有限公司 测试储存单元的方法以及使用该方法的装置
CN109390027B (zh) * 2017-08-08 2021-05-07 慧荣科技股份有限公司 解码方法及相关的闪存控制器与电子装置
TWI692771B (zh) * 2017-11-14 2020-05-01 慧榮科技股份有限公司 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
CN108804025B (zh) * 2018-03-07 2021-10-01 深圳忆联信息系统有限公司 一种降低闪存滞留错误的方法及固态硬盘
US10680745B2 (en) 2018-04-11 2020-06-09 Samsung Electronics Co., Ltd. Blind detection of preempted resources in orthogonal frequency division multiplexing (OFDM) systems
US10725862B2 (en) * 2018-07-06 2020-07-28 Macronix International Co., Ltd. Data recovery method to error correction code in memory
US11258466B1 (en) * 2020-03-13 2022-02-22 Kioxia Corporation System and method for high reliability fast raid soft decoding for NAND flash memories
US11238953B2 (en) * 2020-05-07 2022-02-01 Micron Technology, Inc. Determine bit error count based on signal and noise characteristics centered at an optimized read voltage
CN113671350B (zh) * 2021-08-23 2024-02-27 集创北方(珠海)科技有限公司 测试装置及电子设备
TWI771252B (zh) * 2021-12-21 2022-07-11 南亞科技股份有限公司 電子測試系統及電子測試方法
CN114822669B (zh) * 2022-06-29 2022-09-02 北京得瑞领新科技有限公司 闪存错误注入系统、固态存储设备及测试系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5925144A (en) * 1997-03-13 1999-07-20 Western Digital Corporation Error correction code circuit that performs built-in self test
TW533420B (en) * 2001-11-14 2003-05-21 Taiwan Semiconductor Mfg Memory read test method
US7293206B2 (en) * 2004-09-13 2007-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Test data pattern for testing a CRC algorithm
KR100702300B1 (ko) 2005-05-30 2007-03-30 주식회사 하이닉스반도체 테스트 제어 회로를 갖는 반도체 메모리 장치
CN101405810B (zh) * 2006-01-20 2012-01-25 马维尔国际贸易有限公司 在闪存中用于纠错的方法和系统
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US8335977B2 (en) * 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
US8627163B2 (en) * 2008-03-25 2014-01-07 Micron Technology, Inc. Error-correction forced mode with M-sequence
TW200947450A (en) * 2008-05-09 2009-11-16 A Data Technology Co Ltd Storage system capable of data recovery and method thereof
CN102132350B (zh) * 2008-07-01 2015-06-17 Lsi公司 用于闪存存储器中的软解映射和单元间干扰减轻的方法和设备
CN102543208B (zh) * 2010-12-30 2015-01-21 深圳市硅格半导体有限公司 快速确定闪存错误分布的方法及装置
US8938658B2 (en) * 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US9214963B1 (en) * 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
US9235488B2 (en) * 2013-03-15 2016-01-12 Pmc-Sierra Us, Inc. System and method for random noise generation
US9286155B1 (en) * 2013-05-24 2016-03-15 Marvell International Ltd. Systems and methods for generating soft information in a flash device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI677876B (zh) * 2018-10-12 2019-11-21 慧榮科技股份有限公司 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法
TWI697906B (zh) * 2018-10-12 2020-07-01 慧榮科技股份有限公司 應用於快閃記憶體控制器的編碼器自我測試電路及相關的方法
US11373723B2 (en) 2018-10-12 2022-06-28 Silicon Motion, Inc. Encoder built-in self-test circuit applied in flash memory controller and associated method

Also Published As

Publication number Publication date
US20150155058A1 (en) 2015-06-04
CN107845405A (zh) 2018-03-27
US20170262333A1 (en) 2017-09-14
CN107845405B (zh) 2021-01-26
CN104681100A (zh) 2015-06-03
US10521292B2 (en) 2019-12-31
TWI527048B (zh) 2016-03-21
US9703627B2 (en) 2017-07-11
CN104681100B (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
TWI527048B (zh) 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器
US11334413B2 (en) Estimating an error rate associated with memory
CN110147295B (zh) 存取闪存模块的方法、闪存控制器以及记忆装置
TWI455136B (zh) 用來進行資料整形之方法以及相關之記憶裝置及其控制器
US9483212B2 (en) Non-volatile memory devices and control methods therefor
US8612667B2 (en) Method for performing data pattern management regarding data accessed by a controller of a flash memory, and associated memory device and controller thereof
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
US20170315867A1 (en) Method for accessing flash memory module and associated flash memory controller and memory device
US8719491B2 (en) Encoding flash memory data with a randomizer using different seeds for different sectors
TWI446350B (zh) 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器
US9520184B2 (en) Method for writing in-system programming code into flash memory for better noise margin
TWI585778B (zh) 非揮發性記憶體裝置的操作方法
US20170315868A1 (en) Method for accessing flash memory module and associated flash memory controller and memory device
KR20190051570A (ko) 메모리 시스템 및 그것의 동작 방법
US8830750B1 (en) Data reading method, and control circuit, memory module and memory storage apparatus using the same
CN114765047A (zh) 非易失性存储器装置中的软读取阈值估计的高斯建模
TWI442406B (zh) 針對一快閃記憶體的控制器之錯誤管理機制來提升驗證效率之方法以及相關之記憶裝置及其控制器
TWI606458B (zh) 非揮發性記憶體裝置的操作方法
JP4582078B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11169878B2 (en) Non-volatile memory accessing method using data protection with aid of look-ahead processing, and associated apparatus
US11137944B1 (en) Combined QLC programming method