TWI541819B - 用來進行錯誤更正之方法、記憶裝置、與控制器 - Google Patents
用來進行錯誤更正之方法、記憶裝置、與控制器 Download PDFInfo
- Publication number
- TWI541819B TWI541819B TW102149100A TW102149100A TWI541819B TW I541819 B TWI541819 B TW I541819B TW 102149100 A TW102149100 A TW 102149100A TW 102149100 A TW102149100 A TW 102149100A TW I541819 B TWI541819 B TW I541819B
- Authority
- TW
- Taiwan
- Prior art keywords
- retry
- data
- parameter
- controller
- read
- 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
- 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
-
- 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
- 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
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明係有關於快閃記憶體(Flash Memory)之資料讀取,尤指一種用來進行錯誤更正之方法以及相關之記憶裝置與控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)或具備快閃記憶體之可攜式多媒體播放器(例如:MP3播放器或可攜式影音播放器)被廣泛地實施於諸多應用中。因此,這些可攜式裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶單元的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄多個位元之資訊(例如:00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍以上,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶
體的不穩定性所導致的問題也一一浮現。針對這諸多問題,雖然相關技術中提供了一些解決方式,卻總是無法兼顧運作效能與系統資源使用控管。於是,不論採取哪個解決方式,往往會有對應的副作用。因此,需要一種新穎的方法來加強控管快閃記憶體之資料存取,以兼顧運作效能與系統資源使用控管。
因此本發明之目的之一在於提供一種用來進行錯誤更正之方法以及相關之記憶裝置與控制器,以解決上述問題。
本發明之較佳實施例中提供一種用來進行錯誤更正之方法,該方法係應用於一記憶裝置中之控制器,該記憶裝置包含一快閃記憶體(Flash Memory),該方法包含有下列步驟:於該快閃記憶體之一特定實體位址進行一讀取運作;於偵測到該讀取運作之一無法更正錯誤之後,藉由設定一第一重試參數予該快閃記憶體,於該特定實體位址進行一第一重新讀取運作以取得對應於該第一重試參數之第一資料,且將該第一資料暫時地儲存於一揮發性記憶體(Volatile Memory),並且對該第一資料進行一第一硬解碼(Hard Decoding)運作;以及於偵測到該第一硬解碼運作之解碼失敗之後,至少依據讀取自該揮發性記憶體之該第一資料進行一軟解碼(Soft Decoding)運作,以進行對應該特定實體位址之錯誤更正。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:一快閃記憶體,該快閃記憶體包含複數個區塊;以及一控制器,用來存取該快閃記憶體。尤其是,該控制器於該快閃記憶體之一特定實體位址進行一讀取運作。另外,於偵測到該讀取運作之一無法更正錯誤之後,該控制器藉由設定一第一重試參數予該快閃記憶體,於該特定實體位址進行一第一重新讀取運作以取得對應於該第一重試參數之第一資料,且將該第一資料暫時地儲存於一揮發性記憶體,並且對該第一資料進行一第一硬解碼運作。此外,於偵測到該第一硬解碼運作之解碼失敗之後,至少依據讀取自該揮發
性記憶體之該第一資料進行一軟解碼運作,以進行對應該特定實體位址之錯誤更正。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該控制器係用來存取一快閃記憶體,該快閃記憶體包含複數個區塊,該控制器包含有:一微處理器,用來執行一程式碼以控制對該快閃記憶體之存取,其中該程式碼係讀取自該控制器之外或之內;以及一錯誤更正碼引擎(Error Correction Code Engine,ECC Engine),用來進行錯誤更正。尤其是,該控制器於該快閃記憶體之一特定實體位址進行一讀取運作。另外,於偵測到該讀取運作之一無法更正錯誤之後,該控制器藉由設定一第一重試參數予該快閃記憶體,於該特定實體位址進行一第一重新讀取運作以取得對應於該第一重試參數之第一資料,且將該第一資料暫時地儲存於一揮發性記憶體,並且利用該錯誤更正碼引擎對該第一資料進行一第一硬解碼運作。此外,於偵測到該第一硬解碼運作之解碼失敗之後,至少依據讀取自該揮發性記憶體之該第一資料,該控制器利用該錯誤更正碼引擎進行一軟解碼運作,以進行對應該特定實體位址之錯誤更正。
本發明的好處之一是,本發明之方法以及相關之記憶裝置與控制器可大幅地提昇錯誤更正效能。尤其是,本發明之方法以及相關之記憶裝置與控制器可將硬解碼過程中所使用到的資料中之至少一部分(例如一部分或全部)保留下來,以供軟解碼之用。於是,本發明之方法以及相關之記憶裝置與控制器可快速地依據讀取自該揮發性記憶體之資料來進行軟解碼,而非浪費時間在等待來自該快閃記憶體之讀取結果,其中本發明之方法以及相關之記憶裝置與控制器不需要在軟解碼過程中設定重試參數予該快閃記憶體,故可進一步節省時間且提昇整體效能。另外,本發明之方法以及相關之記憶裝置與控制器可動態地切換於硬解碼與軟解碼之間,使得錯誤更正效能得以最佳化。
100‧‧‧記憶裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧快閃記憶體
200‧‧‧用來進行錯誤更正之方法
210,220,230‧‧‧步驟
310‧‧‧錯誤更正碼引擎
320‧‧‧靜態隨機存取記憶體
420‧‧‧動態隨機存取記憶體
500‧‧‧工作流程
510,520‧‧‧步驟
530‧‧‧讀取重試及硬解碼流程
540‧‧‧軟資訊讀取及軟解碼流程
610,620,625,630,640,650,660‧‧‧步驟
710,710-1,710-2,710-3,...,715,720,730,740,750,760‧‧‧步驟
第1圖為依據本發明一第一實施例之記憶裝置的示意圖。
第2圖為依據本發明一實施例之一種用來進行錯誤更正之方法的流程圖。
第3圖繪示第2圖所示之方法於一實施例中所涉及之靜態隨機存取記憶體(Static Random Access Memory,SRAM)與相對應的資料流。
第4圖繪示第2圖所示之方法於另一實施例中所涉及之動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)與相對應的資料流。
第5圖為第2圖所示之方法於一實施例中所涉及之工作流程。
第6圖為第5圖所示之讀取重試及硬解碼流程於一實施例中之實施細節。
第7圖為第5圖所示之軟資訊讀取及軟解碼流程於第6圖所示實施例中之實施細節。
第8圖繪示第7圖中依據軟模式自該揮發性記憶體載入資料之運作的實施細節。
請參考第1圖,第1圖為依據本發明一第一實施例之記憶裝置100的示意圖。例如:記憶裝置100包含一電子裝置之至少一部分(例如一部分或全部),其中該電子裝置的例子可包含(但不限於)可攜式電子裝置諸如可攜式多媒體播放器(例如:MP3播放器或可攜式影音播放器)。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,記憶裝置100可被使用者電氣連接至該電子裝置,其中記憶裝置100可為一記憶卡,而該電子裝置的例子可包含(但不限於)配置有讀卡機之各種裝置,諸如個人電腦、個人數位助理、多功能行動電話、平板電腦。依據本實施例之某些變化例,記憶裝置100可設置於該電子裝置中,其中記憶裝置100可為固態硬碟(Solid State Drive,SSD),而該電子裝置的例子可包含(但不限於)個人電腦諸如膝上型電腦或桌上型電腦。
如第1圖所示,記憶裝置100包含:一快閃記憶體(Flash Memory)120,用來儲存資訊諸如各種檔案(例如多媒體檔案);以及一控制器,用來存取快閃記憶體120,其中該控制器例如一記憶體控制器110。依據本實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、至少一緩衝記憶體116、與一介面邏輯118。另外,唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制記憶裝置100之運作。例如:執行程式碼112C之微處理器112可控制記憶裝置100之運作,諸如存取(Access)快閃記憶體120中之檔案以及播放多媒體檔案。這只是為了說明的目的而已,並非對本發明之限制。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。
於典型狀況下,快閃記憶體120包含複數個區塊(Block),而記憶體控制器110(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體120進行抹除資料之運作係以區塊為單位來進行抹除。另外,一區塊可記錄特定數量的頁(Page),其中記憶體控制器110可對快閃記憶體120進行一寫入運作,例如寫入一頁或多頁的資料。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體120之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。
依據本實施例,記憶體控制器110可包含一錯誤更正碼引擎(Error Correction Code Engine,ECC Engine;未顯示於第1圖),用來進行錯誤更正。例如:該錯誤更正碼引擎可設置於控制邏輯114中。這只是為了說明的目的而已,並非對本發明之限制。於本實施例中,執行程式碼112C之記憶體控制器110可妥善利用記憶裝置100及/或上述之電子裝置內之硬體資源來提昇
該錯誤更正碼引擎之錯誤更正效能。相關細節請參考第2圖進一步說明。
第2圖為依據本發明一實施例之一種用來進行錯誤更正之方法200的流程圖。該方法可應用於第1圖所示之記憶裝置100,尤其是上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。該方法說明如下:
於步驟210中,該控制器於快閃記憶體之一特定實體位址進行一讀取運作。尤其是,依據一主裝置指令(Host Command),該控制器於該特定實體位址進行該讀取運作,其中該主裝置指令載有對應於該特定實體位址之一邏輯位址。
於步驟220中,於偵測到該讀取運作之一無法更正(Uncorrectable)錯誤之後,該控制器藉由設定一第一重試參數(Retry Parameter)予快閃記憶體120,於該特定實體位址進行一第一重新讀取(Re-read)運作以取得對應於該第一重試參數之第一資料,且將該第一資料暫時地儲存於一揮發性記憶體(Volatile Memory)諸如一隨機存取記憶體(Random Access Memory,RAM),並且對該第一資料進行一第一硬解碼(Hard Decoding)運作。例如:該無法更正錯誤指出該讀取運作之一讀取結果中之錯誤量大於該錯誤更正碼引擎於該讀取結果中所能更正的最大錯誤量。
於步驟230中,於偵測到該第一硬解碼運作之解碼失敗之後,至少依據讀取自該揮發性記憶體之該第一資料,該控制器利用該錯誤更正碼引擎進行一軟解碼(Soft Decoding)運作,以進行對應該特定實體位址之錯誤更正。例如:於進行對應該特定實體位址之錯誤更正期間,該控制器避免為了取得對應於該第一重試參數之該第一資料而於該特定實體位址進行另一重新讀取運作,尤其是避免為了取得對應於該第一重試參數之該第一資料而重新設定該第一重試參數予快閃記憶體120。
為了簡明起見,步驟230之運作係繪示於步驟220之後。這只是為了說明的目的而已,並非對本發明之限制。該控制器可於步驟220與230
之間進行其它運作。另外,該控制器可進行低密度奇偶校驗碼(Low Density Parity Check Code,LDPC Code)編碼/解碼,尤其是可進行硬解碼與軟解碼,其相關解碼方法為同業所熟知,故不再此贅述。
依據本實施例,於偵測到該第一硬解碼運作之解碼失敗之後,該控制器可依據分別對應於一組重試參數之一組資料進行該軟解碼運作,以進行對應該特定實體位址之錯誤更正,其中該組重試參數包含該第一重試參數,且該組資料包含讀取自該揮發性記憶體之該第一資料。尤其是,該軟解碼運作係於偵測到複數個硬解碼運作之解碼失敗之後進行,且該複數個硬解碼運作包含該第一硬解碼運作。例如:該組重試參數可另包含一第二重試參數;於偵測到該無法更正錯誤之後,該控制器可藉由設定該第二重試參數予快閃記憶體120,於該特定實體位址進行一第二重新讀取運作以取得對應於該第二重試參數之第二資料,且將該第二資料暫時地儲存於該揮發性記憶體,並且對該第二資料進行一第二硬解碼運作,其中該複數個硬解碼運作另包含該第二硬解碼運作。另外,該組重試參數可另包含一第三重試參數;於偵測到該無法更正錯誤之後,該控制器可藉由設定該第三重試參數予快閃記憶體120,於該特定實體位址進行一第三重新讀取運作以取得對應於該第三重試參數之第三資料,且將該第三資料暫時地儲存於該揮發性記憶體,並且對該第三資料進行一第三硬解碼運作,其中該複數個硬解碼運作另包含該第三硬解碼運作。
實作上,該讀取運作係基於一原始參數來進行。例如:該組重試參數中之任一者係異於該組重試參數中之任一其它重試參數,其中該組重試參數中之每一者係異於該原始參數。尤其是,該組重試參數中之任一者與該組重試參數中之任一其它重試參數分別對應於快閃記憶體120之不同的電壓位準門檻值,且該組重試參數中之任一者與該原始參數分別對應於快閃記憶體120之不同的電壓位準門檻值,其中快閃記憶體120內之控制電路可依據該控制器所設定之電壓位準門檻值來判定快閃記憶體120某(些)位元是否
為邏輯值0或邏輯值1,並可將判定之邏輯值回應給該控制器。
基於第2圖所示之方法200,第1圖所示架構可大幅地提昇錯誤更正效能,其中硬解碼過程中所使用到的資料中之至少一部分(例如一部分或全部)可保留下來以供軟解碼之用,使得第1圖所示架構可快速地依據讀取自該揮發性記憶體之資料來進行軟解碼,而非浪費時間在等待來自快閃記憶體120之讀取結果。由於在軟解碼過程中不需要設定重試參數予快閃記憶體120,故本發明可進一步節省時間且提昇整體效能。
第3圖繪示第2圖所示之方法於一實施例中所涉及之靜態隨機存取記憶體(Static RAM,SRAM)320與相對應的資料流,其中靜態隨機存取記憶體320可為上述之隨機存取記憶體之一例,而錯誤更正碼引擎310可為上述之錯誤更正碼引擎之一例。如第3圖所示,快閃記憶體120可包含多個快閃記憶體晶片。在該控制器之控制下,硬解碼資料可被儲存至靜態隨機存取記憶體320,並於進行軟解碼期間被讀出以用來作為軟解碼資料。基於第2圖所示之方法200,錯誤更正碼引擎310產生更正資料。本實施例與前述實施例/變化例相仿之處不再重複贅述。
第4圖繪示第2圖所示之方法於另一實施例中所涉及之動態隨機存取記憶體(Dynamic RAM,DRAM)420與相對應的資料流,其中動態隨機存取記憶體420可為上述之隨機存取記憶體之一例。在該控制器之控制下,硬解碼資料可被儲存至動態隨機存取記憶體420,並於進行軟解碼期間被讀出以用來作為軟解碼資料。基於第2圖所示之方法200,錯誤更正碼引擎310產生更正資料。本實施例與前述實施例/變化例相仿之處不再重複贅述。
第5圖為第2圖所示之方法於一實施例中所涉及之工作流程500。基於第2圖所示之方法200,第1圖所示架構可動態地切換於硬解碼與軟解碼之間,使得錯誤更正效能得以最佳化。工作流程500中之運作係針對同一位址(諸如上述之特定實體位址)來進行。
於步驟510中,該控制器於快閃記憶體120進行該讀取運作。尤
其是,錯誤更正碼引擎310嘗試對讀出資料進行錯誤更正。
於步驟520中,該控制器檢查是否出現無法更正錯誤。當偵測到無法更正錯誤時,進入讀取重試及硬解碼流程530,並且可能進入軟資訊讀取及軟解碼流程540;否則,工作流程500結束,其結果為讀取完成。
依據本實施例,當有需要時,該控制器可動態地切換於讀取重試及硬解碼流程530與軟資訊讀取及軟解碼流程540之間。例如:工作流程500可在執行讀取重試及硬解碼流程530中之某一步驟之後結束,其結果為讀取完成。又例如:工作流程500可在執行軟資訊讀取及軟解碼流程540中之某一步驟之後結束,其結果為讀取完成。又例如:工作流程500可在執行軟資訊讀取及軟解碼流程540中之另一步驟之後結束,其結果為讀取資料失敗。本實施例與前述實施例/變化例相仿之處不再重複贅述。
第6圖為第5圖所示之讀取重試及硬解碼流程530於一實施例中之實施細節。
於步驟610中,該控制器設定一重試參數諸如一特定重試參數予快閃記憶體120。依據本實施例,該控制器可於該組重試參數中選擇針對上述同一位址於讀取重試及硬解碼流程530當中尚未使用之任一重試參數,做為該特定重試參數。例如:該特定重試參數可為該第一重試參數、該第二重試參數、或該第三重試參數,或是該組重試參數中之一第四重試參數、一第五重試參數、或一第六重試參數。
於步驟620中,該控制器進行一重新讀取運作,其對應於該特定重試參數。例如:該重新讀取運作可為該第一重新讀取運作、該第二重新讀取運作、或該第三重新讀取運作,或是對應於該第四重試參數、該第五重試參數、與該第六重試參數中之某一者之重新讀取運作。
依據本實施例,該控制器於上述同一位址進行該重新讀取運作以取得對應於該特定重試參數之特定資料,且將該特定資料暫時地儲存於該揮發性記憶體。例如:特定資料可為該第一資料、該第二資料、或該第三資料,
或是對應於該第四重試參數、該第五重試參數、與該第六重試參數中之某一者之資料。實作上,該控制器於步驟620中可依據一預定規則將對應於該特定重試參數之該特定資料暫時地儲存於該揮發性記憶體。例如:該特定資料之位址可對應於該預定規則。
於步驟625中,該控制器進行硬解碼,其對應於該特定重試參數。例如:步驟625之硬解碼可為該第一硬解碼運作、該第二硬解碼運作、或該第三硬解碼運作,或是對應於該第四重試參數、該第五重試參數、與該第六重試參數中之某一者之硬解碼運作。
於步驟630中,該控制器檢查是否出現無法更正錯誤。當偵測到無法更正錯誤時,進入步驟640;否則,進入步驟650,且工作流程500結束,其結果為讀取完成。
於步驟640中,該控制器檢查是否滿足一軟狀況(即,可進入軟資訊讀取及軟解碼流程540之狀況)。例如:於多次執行步驟620之後,當該揮發性記憶體當中對應不同重試參數之資料已累積到足以進行軟解碼,尤其是針對上述同一位址於軟資訊讀取及軟解碼流程540當中尚未嘗試過之軟解碼,則該控制器判定滿足該軟狀況,並且可動態地切換至軟資訊讀取及軟解碼流程540。當偵測到滿足該軟狀況,進入步驟710;否則,進入步驟660。
於步驟660中,該控制器設定新的重試表,以供重新進入步驟610之後判斷是否於該組重試參數中選擇何者作為該特定重試參數之用。例如:該控制器可於最新的重試表記錄針對上述同一位址已使用過的重試參數。又例如:該控制器可於最新的重試表記錄針對上述同一位址尚未使用過的重試參數。
第7圖為第5圖所示之軟資訊讀取及軟解碼流程540於第6圖所示實施例中之實施細節。
於步驟710中,該控制器依據一軟模式諸如一目前軟模式自該揮發性記憶體載入資料,其中該控制器可利用一軟模式索引來代表該軟模式,
而該軟模式索引之各個可能值分別代表複數個軟模式。例如:該目前軟模式可對應於一特定數量之重試參數,且該控制器可自該揮發性記憶體載入對應該些重試參數之資料。又例如:該目前軟模式可對應於該組重試參數中之某些重試參數,且該控制器可自該揮發性記憶體載入對應這些重試參數之資料。
於步驟715中,該控制器進行軟解碼,尤其是至少依據步驟710中所載入之資料來進行軟解碼。步驟715中之軟解碼可為步驟230中之該軟解碼運作之一例。
於步驟720中,該控制器檢查是否出現無法更正錯誤。當偵測到無法更正錯誤時,進入步驟730;否則,進入步驟750,且工作流程500結束,其結果為讀取完成。
於步驟730中,該控制器檢查是否已達最末軟模式。當偵測到已達最末軟模式(即,針對上述同一位址已使用過該複數個軟模式中之全部),進入步驟740,且工作流程500結束,其結果為讀取資料失敗;否則,進入步驟760。
於步驟760中,該控制器改變軟模式,尤其是改變該軟模式索引。其後,該控制器可動態地切換至讀取重試及硬解碼流程530。
第8圖繪示第7圖所示之步驟710的實施細節。依據本實施例,該控制器可依據該軟模式索引所指出之目前軟模式,來判斷應載入哪些資料。例如:於步驟710-1中,該控制器自該揮發性記憶體載入資料S(1);於步驟710-2中,該控制器自該揮發性記憶體載入資料S(2);於步驟710-3中,該控制器自該揮發性記憶體載入資料S(3)。這只是為了說明的目的而已,並非對本發明之限制。隨著軟模式的改變(尤其是該軟模式索引之改變),該控制器自該揮發性記憶體所載入之資料可變化。例如:於步驟710-3之後,該控制器可進一步自該揮發性記憶體載入其它資料。本實施例與前述實施例/變化例相仿之處不再重複贅述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200‧‧‧用來進行錯誤更正之方法
210,220,230‧‧‧步驟
Claims (20)
- 一種用來進行錯誤更正之方法,該方法係應用於一記憶裝置中之控制器,該記憶裝置包含一快閃記憶體(Flash Memory),該方法包含有下列步驟:於該快閃記憶體之一特定實體位址進行一讀取運作;於偵測到該讀取運作之一無法更正錯誤之後,藉由設定一第一重試參數予該快閃記憶體,於該特定實體位址進行一第一重新讀取運作以取得對應於該第一重試參數之第一資料,且將該第一資料暫時地儲存於一揮發性記憶體(Volatile Memory),並且對該第一資料進行一第一硬解碼(Hard Decoding)運作;以及於偵測到該第一硬解碼運作之解碼失敗之後,至少依據讀取自該揮發性記憶體之該第一資料進行一軟解碼(Soft Decoding)運作,以進行對應該特定實體位址之錯誤更正。
- 如申請專利範圍第1項所述之方法,其中該無法更正錯誤指出該讀取運作之一讀取結果中之錯誤量大於該記憶裝置之一錯誤更正碼引擎(Error Correction Code Engine,ECC Engine)於該讀取結果中所能更正的最大錯誤量。
- 如申請專利範圍第1項所述之方法,其中於該特定實體位址進行該讀取運作之步驟另包含:依據一主裝置指令(Host Command),於該特定實體位址進行該讀取運作,其中該主裝置指令載有對應於該特定實體位址之一邏輯位址。
- 如申請專利範圍第1項所述之方法,其中該讀取運作係基於一原始參數 來進行;以及該第一重試參數係異於該原始參數。
- 如申請專利範圍第4項所述之方法,其中該第一重試參數與該原始參數分別對應於該快閃記憶體之不同的電壓位準門檻值。
- 如申請專利範圍第1項所述之方法,其中至少依據讀取自該揮發性記憶體之該第一資料進行該軟解碼運作以進行對應該特定實體位址之錯誤更正之步驟另包含:於進行對應該特定實體位址之錯誤更正期間,避免為了取得對應於該第一重試參數之該第一資料而於該特定實體位址進行另一重新讀取運作。
- 如申請專利範圍第6項所述之方法,其中至少依據讀取自該揮發性記憶體之該第一資料進行該軟解碼運作以進行對應該特定實體位址之錯誤更正之步驟另包含:於進行對應該特定實體位址之錯誤更正期間,避免為了取得對應於該第一重試參數之該第一資料而重新設定該第一重試參數予該快閃記憶體。
- 如申請專利範圍第1項所述之方法,其中至少依據讀取自該揮發性記憶體之該第一資料進行該軟解碼運作以進行對應該特定實體位址之錯誤更正之步驟另包含:於偵測到該第一硬解碼運作之解碼失敗之後,依據分別對應於一組重試參數之一組資料進行該軟解碼運作,以進行對應該特定實體位址之錯誤更正,其中該組重試參數包含該第一重試參數,且該組資料包含讀取自該揮發性記憶體之該第一資料。
- 如申請專利範圍第8項所述之方法,其中該軟解碼運作係於偵測到複數個硬解碼運作之解碼失敗之後進行,且該複數個硬解碼運作包含該第一硬解碼運作。
- 如申請專利範圍第9項所述之方法,其中該組重試參數另包含一第二重試參數;以及該方法另包含:於偵測到該無法更正錯誤之後,藉由設定該第二重試參數予該快閃記憶體,於該特定實體位址進行一第二重新讀取運作以取得對應於該第二重試參數之第二資料,且將該第二資料暫時地儲存於該揮發性記憶體,並且對該第二資料進行一第二硬解碼運作;其中該複數個硬解碼運作另包含該第二硬解碼運作。
- 如申請專利範圍第10項所述之方法,其中該組重試參數另包含一第三重試參數;以及該方法另包含:於偵測到該無法更正錯誤之後,藉由設定該第三重試參數予該快閃記憶體,於該特定實體位址進行一第三重新讀取運作以取得對應於該第三重試參數之第三資料,且將該第三資料暫時地儲存於該揮發性記憶體,並且對該第三資料進行一第三硬解碼運作;其中該複數個硬解碼運作另包含該第三硬解碼運作。
- 如申請專利範圍第8項所述之方法,其中該讀取運作係基於一原始參數來進行;以及該組重試參數中之任一者係異於該組重試參數中之任一其它重試參數,且該組重試參數中之每一者係異於該原始參數。
- 一種記憶裝置,其包含有: 一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體,其中該控制器於該快閃記憶體之一特定實體位址進行一讀取運作,以及於偵測到該讀取運作之一無法更正錯誤之後,該控制器藉由設定一第一重試參數予該快閃記憶體,於該特定實體位址進行一第一重新讀取運作以取得對應於該第一重試參數之第一資料,且將該第一資料暫時地儲存於一揮發性記憶體(Volatile Memory),並且對該第一資料進行一第一硬解碼(Hard Decoding)運作;其中於偵測到該第一硬解碼運作之解碼失敗之後,至少依據讀取自該揮發性記憶體之該第一資料進行一軟解碼(Soft Decoding)運作,以進行對應該特定實體位址之錯誤更正。
- 如申請專利範圍第13項所述之記憶裝置,其中該無法更正錯誤指出該讀取運作之一讀取結果中之錯誤量大於該控制器之一錯誤更正碼引擎(Error Correction Code Engine,ECC Engine)於該讀取結果中所能更正的最大錯誤量。
- 如申請專利範圍第13項所述之記憶裝置,其中依據一主裝置指令(Host Command),該控制器於該特定實體位址進行該讀取運作,其中該主裝置指令載有對應於該特定實體位址之一邏輯位址。
- 如申請專利範圍第13項所述之記憶裝置,其中該讀取運作係基於一原始參數來進行;以及該第一重試參數係異於該原始參數。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有: 一微處理器,用來執行一程式碼以控制對該快閃記憶體之存取,其中該程式碼係讀取自該控制器之外或之內;以及一錯誤更正碼引擎(Error Correction Code Engine,ECC Engine),用來進行錯誤更正;其中該控制器於該快閃記憶體之一特定實體位址進行一讀取運作;於偵測到該讀取運作之一無法更正錯誤之後,該控制器藉由設定一第一重試參數予該快閃記憶體,於該特定實體位址進行一第一重新讀取運作以取得對應於該第一重試參數之第一資料,且將該第一資料暫時地儲存於一揮發性記憶體(Volatile Memory),並且利用該錯誤更正碼引擎對該第一資料進行一第一硬解碼(Hard Decoding)運作;以及於偵測到該第一硬解碼運作之解碼失敗之後,至少依據讀取自該揮發性記憶體之該第一資料,該控制器利用該錯誤更正碼引擎進行一軟解碼(Soft Decoding)運作,以進行對應該特定實體位址之錯誤更正。
- 如申請專利範圍第17項所述之控制器,其中該無法更正錯誤指出該讀取運作之一讀取結果中之錯誤量大於該錯誤更正碼引擎於該讀取結果中所能更正的最大錯誤量。
- 如申請專利範圍第17項所述之控制器,其中依據一主裝置指令(Host Command),該控制器於該特定實體位址進行該讀取運作,其中該主裝置指令載有對應於該特定實體位址之一邏輯位址。
- 如申請專利範圍第17項所述之控制器,其中該讀取運作係基於一原始參數來進行;以及該第一重試參數係異於該原始參數。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102149100A TWI541819B (zh) | 2013-12-30 | 2013-12-30 | 用來進行錯誤更正之方法、記憶裝置、與控制器 |
US14/455,953 US9405619B2 (en) | 2013-12-30 | 2014-08-11 | Method for performing error correction, associated memory apparatus and associated controller thereof |
CN201410530858.9A CN104750571B (zh) | 2013-12-30 | 2014-10-10 | 用以进行错误纠正的方法、存储装置与存储装置的控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102149100A TWI541819B (zh) | 2013-12-30 | 2013-12-30 | 用來進行錯誤更正之方法、記憶裝置、與控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201526010A TW201526010A (zh) | 2015-07-01 |
TWI541819B true TWI541819B (zh) | 2016-07-11 |
Family
ID=53481873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102149100A TWI541819B (zh) | 2013-12-30 | 2013-12-30 | 用來進行錯誤更正之方法、記憶裝置、與控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9405619B2 (zh) |
CN (1) | CN104750571B (zh) |
TW (1) | TWI541819B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376554A (zh) * | 2017-01-31 | 2018-08-07 | 爱思开海力士有限公司 | 存储器模块、包括其的存储系统及其错误校正方法 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106816179B (zh) * | 2015-11-30 | 2020-12-25 | 华为技术有限公司 | 一种闪存纠错方法和装置 |
CN105898295A (zh) * | 2015-12-01 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种播放器解码方法和装置 |
KR20170068681A (ko) * | 2015-12-09 | 2017-06-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI588834B (zh) * | 2016-02-23 | 2017-06-21 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US9954558B1 (en) * | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
CN105893167A (zh) * | 2016-03-28 | 2016-08-24 | 联想(北京)有限公司 | 一种信息处理方法及装置、电子设备 |
CN107391296B (zh) | 2016-04-27 | 2020-11-06 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
CN107391026B (zh) | 2016-04-27 | 2020-06-02 | 慧荣科技股份有限公司 | 闪存装置及闪存存储管理方法 |
CN111679787B (zh) | 2016-04-27 | 2023-07-18 | 慧荣科技股份有限公司 | 闪存装置、闪存控制器及闪存存储管理方法 |
US10289487B2 (en) | 2016-04-27 | 2019-05-14 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US10110255B2 (en) * | 2016-04-27 | 2018-10-23 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
US10019314B2 (en) | 2016-04-27 | 2018-07-10 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
KR20190092937A (ko) * | 2018-01-31 | 2019-08-08 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
TWI663512B (zh) * | 2018-05-17 | 2019-06-21 | 慧榮科技股份有限公司 | 重讀頁面資料方法 |
TWI664634B (zh) * | 2018-08-17 | 2019-07-01 | 慧榮科技股份有限公司 | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 |
CN110046059A (zh) * | 2019-04-15 | 2019-07-23 | 联芸科技(杭州)有限公司 | 用于存储器的读取控制装置、读取控制方法和控制器 |
US11531590B2 (en) | 2019-09-17 | 2022-12-20 | Western Digital Technologies, Inc. | Method and system for host-assisted data recovery assurance for data center storage device architectures |
CN111190764A (zh) * | 2020-01-13 | 2020-05-22 | 山东华芯半导体有限公司 | 一种获得nand闪存ldpc码软信息的方法 |
CN111798902A (zh) * | 2020-06-28 | 2020-10-20 | 山东华芯半导体有限公司 | 一种获得电荷俘获型3d nand闪存软信息的方法 |
CN114121127A (zh) * | 2020-08-27 | 2022-03-01 | 成都忆芯科技有限公司 | 动态调整读重做序列以优化读命令处理 |
CN113612484A (zh) * | 2021-07-27 | 2021-11-05 | 深圳市德明利技术股份有限公司 | 一种硬判决和软判决相结合的高效ldpc纠错算法的实现方法 |
CN113626091A (zh) * | 2021-08-19 | 2021-11-09 | 深圳忆联信息系统有限公司 | 固态硬盘的启动优化方法、装置、计算机设备及存储介质 |
US11630590B1 (en) * | 2022-01-11 | 2023-04-18 | Silicon Motion, Inc. | Method and apparatus for performing access control of memory device with aid of aggressor bit information |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2428496A (en) * | 2005-07-15 | 2007-01-31 | Global Silicon Ltd | Error correction for flash memory |
US7746602B2 (en) | 2006-06-21 | 2010-06-29 | Hitachi Global Storage Technologies Netherlands B.V. | Magnetic read head with reduced shunting |
US7814401B2 (en) | 2006-12-21 | 2010-10-12 | Ramot At Tel Aviv University Ltd. | Soft decoding of hard and soft bits read from a flash memory |
KR100850509B1 (ko) | 2007-01-10 | 2008-08-05 | 삼성전자주식회사 | 프로그램 에러를 감소시킬 수 있는 멀티 비트 플래시메모리 장치의 프로그램 방법 |
WO2008121577A1 (en) | 2007-03-31 | 2008-10-09 | Sandisk Corporation | Soft bit data transmission for error correction control in non-volatile memory |
WO2009072103A2 (en) | 2007-12-05 | 2009-06-11 | 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 |
US7746692B2 (en) | 2008-01-31 | 2010-06-29 | Agere Systems Inc. | Multiple-level memory with analog read |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8504884B2 (en) * | 2009-10-29 | 2013-08-06 | Freescale Semiconductor, Inc. | Threshold voltage techniques for detecting an imminent read failure in a memory array |
TW201508759A (zh) | 2010-04-19 | 2015-03-01 | Silicon Motion Inc | 用來進行記憶體存取管理之方法以及記憶裝置及其控制器 |
CN102566937A (zh) * | 2010-12-30 | 2012-07-11 | 慧荣科技股份有限公司 | 快闪存储装置及其运作方法 |
US8812939B2 (en) | 2011-01-28 | 2014-08-19 | Marvell World Trade Ltd. | Soft decoding systems and methods for flash based memory systems |
US9058289B2 (en) * | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US8656257B1 (en) * | 2012-01-11 | 2014-02-18 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with concatenated error correction codes |
US9177664B2 (en) * | 2012-02-22 | 2015-11-03 | Silicon Motion, Inc. | Method, memory controller and system for reading data stored in flash memory |
US8943384B2 (en) | 2012-04-12 | 2015-01-27 | Seagate Technology Llc | Using a soft decoder with hard data |
-
2013
- 2013-12-30 TW TW102149100A patent/TWI541819B/zh active
-
2014
- 2014-08-11 US US14/455,953 patent/US9405619B2/en active Active
- 2014-10-10 CN CN201410530858.9A patent/CN104750571B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376554A (zh) * | 2017-01-31 | 2018-08-07 | 爱思开海力士有限公司 | 存储器模块、包括其的存储系统及其错误校正方法 |
CN108376554B (zh) * | 2017-01-31 | 2021-08-24 | 爱思开海力士有限公司 | 存储器模块、包括其的存储系统及其错误校正方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201526010A (zh) | 2015-07-01 |
US20150186210A1 (en) | 2015-07-02 |
CN104750571B (zh) | 2017-10-31 |
US9405619B2 (en) | 2016-08-02 |
CN104750571A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI541819B (zh) | 用來進行錯誤更正之方法、記憶裝置、與控制器 | |
TWI446350B (zh) | 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器 | |
US8589766B2 (en) | Codeword remapping schemes for non-volatile memories | |
US9189325B2 (en) | Memory system and operation method thereof | |
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI455144B (zh) | 使用於快閃記憶體的控制方法與控制器 | |
TWI455136B (zh) | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 | |
US20150085571A1 (en) | Updating read voltages | |
TWI566253B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
TWI608350B (zh) | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法 | |
US20190065361A1 (en) | Method for writing data into flash memory module and associated flash memory controller and electronic device | |
US9063888B2 (en) | Program code loading and accessing method, memory controller, and memory storage apparatus | |
US11907059B2 (en) | Abnormal power loss recovery method, memory control circuit unit, and memory storage device | |
CN114341815A (zh) | 在存储器组件上执行错误控制操作以用于垃圾收集 | |
US10459630B2 (en) | Memory management method, memory storage device and memory controlling circuit unit | |
TW202209106A (zh) | 用來進行資料儲存管理以提升資料可靠度之方法、記憶裝置及其控制器以及電子裝置 | |
TWI692771B (zh) | 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置 | |
US10997067B2 (en) | Data storing method, memory controlling circuit unit and memory storage device | |
CN111399751A (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
TW201941208A (zh) | 記憶體管理方法與儲存控制器 | |
US11928353B2 (en) | Multi-page parity data storage in a memory device | |
CN105868046B (zh) | 存储装置中管理、写入及加载固件代码的方法 | |
CN116486890A (zh) | 基于校验复用的固态硬盘ftl方法、系统、设备及介质 | |
US11106531B2 (en) | Flash memory controller, storage device and reading method thereof | |
US11809748B2 (en) | Control method of flash memory controller and associated flash memory controller and electronic device |