TW201944426A - 使用階層式解碼器之誤差校正 - Google Patents

使用階層式解碼器之誤差校正 Download PDF

Info

Publication number
TW201944426A
TW201944426A TW108113525A TW108113525A TW201944426A TW 201944426 A TW201944426 A TW 201944426A TW 108113525 A TW108113525 A TW 108113525A TW 108113525 A TW108113525 A TW 108113525A TW 201944426 A TW201944426 A TW 201944426A
Authority
TW
Taiwan
Prior art keywords
decoder
data
error correction
validity flag
memory device
Prior art date
Application number
TW108113525A
Other languages
English (en)
Other versions
TWI697908B (zh
Inventor
帕歐羅 阿瑪托
馬克 斯佛森
Original Assignee
美商美光科技公司
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 美商美光科技公司 filed Critical 美商美光科技公司
Publication of TW201944426A publication Critical patent/TW201944426A/zh
Application granted granted Critical
Publication of TWI697908B publication Critical patent/TWI697908B/zh

Links

Classifications

    • 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
    • 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/1012Adding 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
    • 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/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/1012Adding 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
    • G06F11/102Error in check bits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2948Iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6575Implementations based on combinatorial logic, e.g. Boolean circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

與校正誤差相關之設備及方法可包含使用FD解碼器及AD解碼器。校正誤差可包含:從記憶體陣列接收輸入資料;對該輸入資料執行與一誤差偵測相關聯之複數個操作;基於處理該輸入資料而將輸出資料、一驗證旗標及複數個同位檢查位元提供至由耦合至記憶體裝置之一控制器裝載之一第二解碼器。

Description

使用階層式解碼器之誤差校正
本發明大體上係關於記憶體,且更特定言之係關於與誤差校正相關聯之設備及方法。
記憶體裝置通常提供為電腦或其他電子裝置中之內部半導體積體電路。存在許多不同類型之記憶體,包含揮發性及非揮發性記憶體。揮發性記憶體可需要電力來維持其資料且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)等。非揮發性記憶體可在未供電時藉由留存所儲存之資料而提供持久資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM (EEPROM)、可擦除可程式化ROM (EPROM)及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM)、電阻性隨機存取記憶體(RRAM)及磁阻性隨機存取記憶體(MRAM))等。
記憶體亦用作用於廣泛範圍之電子應用之揮發性及非揮發性資料儲存器。非揮發性記憶體可用於例如個人電腦、可攜式記憶體棒、數位相機、蜂巢式電話、可攜式音樂播放器(諸如MP3播放器)、電影播放器及其他電子裝置。記憶體單元可經配置成陣列,其中該等陣列用於記憶體裝置中。
各種運算系統包含耦合至記憶體(例如,一記憶體系統)之處理資源,結合執行一指令集(例如,一程式、應用程式等)存取該記憶體。一記憶體系統可使用誤差校正碼(ECC)來偵測及校正資料中之誤差。
本發明提供一種記憶體裝置,其包括:一陣列;一第一解碼器,其經組態以:從該記憶體陣列接收輸入資料;對該輸入資料執行與一誤差偵測相關聯之複數個操作;及基於處理該輸入資料而將輸出資料、一驗證旗標及複數個同位檢查位元提供至由耦合至該記憶體裝置之一控制器裝載之一第二解碼器。
本發明亦提供一種耦合至一記憶體裝置之控制器,其包括:一精確解碼(AD)解碼器,其經組態以:從由該記憶體裝置裝載之一第一快速解碼(FD)解碼器接收資料、一有效性旗標及同位檢查位元;回應於判定該有效性旗標係一第一值,將該資料及該等同位檢查位元提供至一第二FD解碼器;回應於判定該有效性旗標係一第二值:使用該等同位檢查位元對該資料執行誤差校正操作;將該經校正資料及該等同位檢查位元提供至該第二FD解碼器;及該第二FD解碼器,其經組態以使用該等同位檢查位元對該資料執行誤差校正。
本發明進一步提供一種設備,其包括:一記憶體陣列,其經組態以儲存資料及同位檢查位元;及一快速解碼(FD)解碼器,其經組態以接收該資料及該等同位檢查位元且包括:一校正子運算單元,其經組態以從該資料及該等同位檢查位元產生一校正子;一誤差校正單元,其經組態以:使用該校正子及該等同位檢查位元對該資料執行一誤差校正碼以基於校正該資料之一判定而產生經校正資料;及將該資料及該經校正資料之至少一者提供至由一控制器裝載之一精確解碼(AD)解碼器;及一錯誤校正檢查器單元,其經組態以:基於該誤差校正單元是否將該資料或該經校正資料提供至該AD解碼器而產生一有效性旗標;及將該有效性旗標提供至該AD解碼器。
本發明亦提供一種用於使用一快速解碼(FD)解碼器執行一誤差校正碼之方法,其包括:判定是否使用由一記憶體裝置裝載之該FD解碼器對一頁執行一第一誤差校正碼;基於執行該第一誤差校正之一判定:從該頁及同位檢查位元產生一經校正頁;及產生一第一有效性旗標;將該第一有效性旗標及該經校正頁提供至一微控制器;及基於不執行該第一誤差校正碼之一判定;產生一第二有效性旗標;將該第二有效性旗標、該頁及該等同位檢查位元提供至該微控制器。
本發明包含與誤差校正相關之設備及方法。一例示性方法可包含從記憶體陣列接收輸入資料;對該輸入資料執行與一誤差偵測相關聯之複數個操作;基於處理該輸入資料而將輸出資料、一驗證旗標及複數個同位檢查位元提供至由耦合至記憶體裝置之一控制器裝載之一第二解碼器。
本發明之數項實施例可提供用於對使用一記憶體裝置儲存之資料執行誤差校正之一經改良誤差校正碼(ECC)。例如,一些先前ECC包含將冗餘資料或同位檢查資料添加至一訊息,使得可恢復訊息。在資料之傳輸、儲存及/或擷取期間,可在數個誤差之指令之後恢復資料。
儲存器係電腦系統中之一效能瓶頸。儲存資料及從儲存器擷取資料之能力係一電腦系統執行運算及操作之能力之一限制因素。
儘管基於NAND之儲存器解決方案已經改良而優於硬碟機延時達10倍以上,然儲存器仍係一延時落後者。諸如相變記憶體(PCM)、磁阻隨機存取記憶體(MRAM)、電阻性隨機存取記憶體(ReRAM)及/或3D XPoint記憶體之新興記憶體(EM)技術可改良記憶體相關延時而優於其他記憶體技術。EM可提供與系統(例如,運算系統)之其餘部分同樣快之資料儲存器。EM可提供具有相當於一運算系統之其他組件之延時之一延時之資料儲存器。為應對儲存器應用之可靠性目標,EM可利用能夠校正誤差且留存擁有EM之一裝置之低延時效能之ECC。
鑑於儲存器應用(不同於記憶體應用)可忍受可變存取延時,利用具有一低延時之一ECC解碼器可為有益的。在一些實例中,低延時可包括複數個奈秒之範圍內之一延時。在其他實例中,一較高延時可為複數個微秒之範圍內之一延時。
可藉由利用ECC級聯方案及階層式解碼器而達成具有一高校正能力及一低延時之ECC解碼器。如本文中使用,階層式解碼器可描述使用多個解碼器校正資料中之誤差。階層式解碼器可包含使用快速解碼(FD)解碼器及精確解碼(AD)解碼器。在一些實例中,一階層式解碼方案可利用FD解碼器且可視需要借助於用於AD解碼器中之更強大ECC。
鑑於FD解碼器以一高機率標記其故障之能力,可使用FD解碼器中採用之ECC。若FD解碼器中所使用之ECC在不引發一旗標之情況下發生故障,則將接受以一錯誤解碼事件結束之資訊區塊。在一些實例中,在FD解碼器中發生一故障而不引發一旗標之一機率非常低。可在非常短時間內產生由FD解碼器產生以識別一故障之旗標,以免損害FD解碼器之低延時。
在數項實施例中,一階層式碼架構利用嵌入一記憶體裝置中之一FD解碼器及實施於一儲存控制器中之一AD解碼器。為具有一有效且高效解決方案,FD解碼器架構可經調適以用於如圖1中展示之一階層式方案中。
在本發明之下列詳細描述中,參考隨附圖式,其等形成本發明之一部分,且其中藉由圖解展示可如何實踐本發明之數項實施例。充分詳細描述此等實施例以使一般技術者能夠實踐本發明之實施例,且應理解,可利用其他實施例且在不脫離本發明之範疇之情況下可做出程序、電及/或結構改變。如本文中使用,指定符「N」指示如此指定之數個特定特徵可包含於本發明之數項實施例中。
如本文中使用,「數個」某物可係指此等事物之一或多者。例如,數個記憶體裝置可係指記憶體裝置之一或多者。「複數個」某物意指兩個或更多個。另外,如本文中使用,諸如「N」之指定符(尤其關於圖式中之元件符號)指示如此指定之數個特定特徵可包含於本發明之數項實施例中。
本文中之圖遵循一編號慣例,其中首位數字或前幾位數字對應於圖式圖號且其餘數字識別圖式中之一元件或組件。可藉由使用類似數字識別不同圖之間的類似元件或組件。如將暸解,可添加、交換及/或消除在本文中之各種實施例中展示之元件,以便提供本發明之數項額外實施例。另外,圖中提供之元件之比例及相對尺度意欲繪示本發明之各種實施例且不在一限制意義上使用。
圖1係能夠實施本發明之數項實施例之包含一記憶體裝置104及一控制器102之一記憶體系統100之一方塊圖。記憶體系統100亦可包含複數個快速編碼(FE)編碼器106-1及106-2 (統稱為FE編碼器106)及一精確編碼(AE)編碼器108。記憶體系統100亦可包含複數個FD解碼器110-1及110-2 (統稱為FD解碼器110)及一AD解碼器112。記憶體系統100可進一步包含一記憶體陣列114。
如本文中使用,一「設備」可係指(但不限於)各種結構或結構組合,諸如一或多個電路、一或多個晶粒、一或多個模組、一或多個裝置或一或多個系統。例如,記憶體系統100、控制器102、記憶體裝置104、FE編碼器106、AE編碼器108、FD解碼器110、AD解碼器112及記憶體陣列114可單獨或共同稱為一「設備」。
在此實例中,一運算系統包含耦合至控制器102之一主機,控制器102經耦合至記憶體系統100。運算系統可為一膝上型電腦、個人電腦、數位相機、數位記錄及重播裝置、行動電話、PDA、記憶體卡讀取器、介面集線器、感測器、啟用物聯網(IoT)之裝置及其他系統,且主機可包含能夠(例如,經由控制器102)存取記憶體系統100之數個處理資源(例如,一或多個處理器)。主機可負責執行一作業系統(OS)及/或可(例如,經由控制器102從記憶體系統100)載入至其之各種應用程式。
控制器102可從主機接收記憶體異動請求(例如,呈讀取及寫入命令之形式,其等可分別稱為載入及儲存命令)。控制器102可透過數個介面例如採用一適合協定在主機與記憶體系統100之間傳送命令及/或資料,該數個介面可包括實體介面,諸如匯流排。此協定可為定製或專屬的,或介面可採用一標準化協定,諸如周邊組件快速互連(PCIe)、Gen-Z、CCIX或類似物。控制器102可包括呈硬體、韌體或軟體之形式或該三者之任何組合之控制電路。作為一實例,控制器102可包括一狀態機、一定序器及/或某一其他類型之控制電路,其可以耦合至一印刷電路板之一特定應用積體電路(ASIC)之形式實施。在數項實施例中,控制器102可與主機共置(例如,呈一系統單晶片(SOC)組態)。而且,控制器102可與記憶體系統100共置。
記憶體系統100可包括數個實體記憶體「晶片」或晶粒,其等可各包含數個記憶體胞陣列(例如,庫)及與存取該(等)陣列(例如,從陣列讀取資料及將資料寫入至陣列)相關聯之對應支援電路(例如,位址電路、I/O電路、控制電路、讀取/寫入電路等)。作為一實例,記憶體系統100可包含數個DRAM裝置、SRAM裝置、PCRAM裝置、RRAM裝置、FeRAM裝置、相變記憶體、3DXpoint及/或快閃記憶體裝置。在數項實施例中,記憶體系統100可充當運算系統之主要記憶體。
FD解碼器110可實施FD碼。FD碼可在一持續時間內校正誤差。持續時間可包含複數個奈秒。一FD碼及引申而言FD解碼器110可校正至多預定數量之誤差。例如,FD解碼器110可校正從記憶體陣列114擷取之一給定資料頁中之一個至五個誤差。FD解碼器110可實施一代數解碼方案。即,FD解碼器110可利用代數解碼而非反覆解碼。FD解碼器110可利用組合邏輯實施代數解碼。在一些實例中,FD解碼器110可在錯誤地解碼資料之一機率小於10-5 之情況下解碼資料,同時維持一低延時。
AD解碼器112可實施AD碼。AD碼可在一持續時間內校正誤差。持續時間可包含複數個微秒。可在FD解碼器110與AD解碼器112之間區分一預定持續時間。例如,FD解碼器110可判定是否校正誤差及/或可在一預定持續時間內校正誤差。AD解碼器112可判定是否校正誤差及/或可在大於預定持續時間之一持續時間內校正誤差。
一AD碼及引申而言AD解碼器112可校正多於預定數量之誤差。例如,AD解碼器112可校正從記憶體陣列114擷取之一給定資料頁中之六個或更多個誤差。例如,AD解碼器112可校正數百個誤差。AD解碼器112可實施一反覆程序。可利用循序邏輯實施反覆程序。
AD解碼器112及FD解碼器110之至少一者可駐留於不同裝置及/或設備中。例如,AD解碼器112可駐留於控制器102中,而FD解碼器110-2駐留於記憶體裝置104中。在一些實施例中,控制器102可為一微控制器(uC)。
FD解碼器110-2可利用一有效性旗標觸發AD解碼器112。即,AD解碼器112可回應於接收一有效性旗標及/或回應於有效性旗標之一值而判定是否實施一AD碼以校正資料中之誤差。FD解碼器110-2可基於FD解碼器110-2是否校正從記憶體陣列114擷取之資料中之一誤差而觸發一有效性旗標。經觸發有效性旗標可表示數個位元,其等包含一預定值以識別FD解碼器110-2校正一誤差或不存在誤差。經觸發有效性旗標可抑制AD解碼器112之資料處理。
在一些實例中,亦可編碼儲存於記憶體陣列中之資料。可利用FE編碼器106及AE編碼器108之一者編碼資料。例如,可利用駐留於一相同裝置(例如,控制器102)中之FE編碼器106-1及AE編碼器108編碼資料。亦可利用駐留於不同裝置中之FE編碼器106-2及AE編碼器108編碼資料。AE編碼器108可由控制器102裝載而FE編碼器106-2由記憶體裝置104裝載。
在一些實施例中,可從記憶體陣列114以頁擷取資料及/或同位檢查位元。在一些實例中,頁包含碼字。如本文中使用,同位檢查位元描述可用於判定資料是否含有誤差之位元。同位檢查位元亦可用於識別誤差及/或校正誤差。
可將資料及/或同位檢查位元提供至FD解碼器110-2。例如,控制器102可協調資料及/或同位檢查位元從記憶體陣列114至FD解碼器110-2之傳送。FD解碼器110-2可判定資料中是否存在誤差及/或其是否將利用同位檢查位元校正誤差。FD解碼器110-2可基於是否校正誤差而產生一有效性旗標。
FD解碼器110-2可將資料、同位檢查位元及/或有效性旗標提供至AD解碼器112。AD解碼器112可基於有效性旗標之值判定是否對資料執行誤差校正碼(例如,AD碼)。例如,AD解碼器112可回應於接收包括一第一值之一有效性旗標而校正資料中之誤差。AD解碼器112可回應於接收包括一第二值之一有效性旗標而禁止校正誤差。FD解碼器110-2可回應於校正資料中之數個誤差而產生一經啟動有效性旗標。經啟動有效性旗標可為一邏輯「1」位元且一撤銷啟動有效性旗標可為一邏輯「0」位元。在一些實例中,經啟動有效性旗標可為一邏輯「0」位元且一撤銷啟動有效性旗標可為一邏輯「1」位元。
AD解碼器112可回應於接收一撤銷啟動有效性旗標而校正誤差。即,AD解碼器112可回應於接收一撤銷啟動有效性旗標而判定所接收資料中是否存在一誤差。AD解碼器112可回應於判定存在誤差而校正誤差。
若AD解碼器112使用同位檢查位元校正資料中之誤差,則AD解碼器112可將經校正資料提供至FD解碼器110-1以進行進一步誤差校正。在一些實例中,AD解碼器112可將資料提供至一請求設備而無需由FD解碼器110-1進行進一步處理。
在其他實例中,AD解碼器112可提供輸入資料作為輸出資料而無需回應於接收一經啟動有效性旗標對資料執行誤差校正。即,AD解碼器112可回應於接收已由FD解碼器110-2校正之資料而將資料及/或同位檢查位元傳遞至FD解碼器110-1及/或一請求設備。
在一些實例中,AD解碼器112可從FD解碼器110-2接收資料及有效性旗標而不接收同位檢查位元。AD解碼器112可判定資料中是否存在一誤差。回應於判定資料中存在一誤差,AD解碼器112及/或控制器102可從記憶體裝置104請求同位檢查位元。例如,AD解碼器112可使用一讀取再試命令請求同位檢查位元。AD解碼器112及/或控制器102可使用讀取再試命令從記憶體裝置104請求同位檢查位元。
AD解碼器112使用所請求同位檢查位元校正誤差。可從FD解碼器110-2接收及/或可在不使用FD解碼器110-2之情況下接收所請求同位檢查位元。在一些實例中,FD解碼器110-2可使用一或多個專用同位檢查位元線提供同位檢查位元。
FD解碼器110-1可從AD解碼器112接收資料且可校正資料中之誤差。例如,FD解碼器110-1可判定由AD解碼器112提供之資料是否含有誤差。回應於判定資料含有誤差,FD解碼器110-1可校正誤差。
圖2係根據本發明之數項實施例之能夠校正誤差之一FD解碼器210之方塊圖。FD解碼器210可包含一校正子運算單元227、一誤差校正單元228及一錯誤校正檢查器單元229。
在一些實施例中,校正子運算單元227可與誤差校正單元228及/或錯誤校正檢查器單元229通信。錯誤校正檢查器單元229亦可與誤差校正單元228通信。
FD解碼器210可從記憶體陣列接收資料220及同位檢查位元226。FD解碼器210可在校正子運算單元227處接收資料220。FD解碼器210可經由一專用同位檢查位元線將同位檢查位元226提供至一控制器及/或控制器之一設備。
在一些實例中,FD解碼器210可提供同位檢查位元226,而無關於是否校正資料(例如,原始資料)。在其他實例中,若撤銷啟動有效性旗標224 (例如,無效性),則FD解碼器210可提供資料。FD解碼器210亦可在請求之後提供同位檢查位元226。例如,FD解碼器210可在請求之後提供同位檢查位元226,而無關於有效性旗標224之一值。
校正子運算單元227可從資料220及同位檢查位元226產生一校正子。一校正子可為可用於判定資料220中是否存在誤差之一向量。例如,校正子運算單元227可從所接收之一或多個碼字產生一校正子。可將校正子提供至誤差校正單元228及/或錯誤校正檢查器單元229。
誤差校正單元228可利用校正子判定資料220是否包含誤差。誤差校正單元228亦可使用校正子判定資料220中存在之一誤差數量。若資料220中之誤差數量小於一預定臨限值,則誤差校正單元228可校正誤差。若資料220中之誤差數量大於預定臨限值,則誤差校正單元228可放棄校正誤差。因而,誤差校正單元228可產生經校正資料或原始資料。由誤差校正單元提供之資料可稱為資料222、經校正資料222及/或原始資料222。FD解碼器210可將資料222提供至一控制器及/或由控制器裝載之AD解碼器。在一些實例中,誤差校正單元228可將一訊息提供至錯誤校正檢查器單元229以向錯誤校正檢查器單元229告知資料222中是否校正一誤差。
錯誤校正檢查器單元229可使用校正子及/或從誤差校正單元228接收之一訊息判定是否在資料222中校正一誤差。基於是否在資料222中校正一誤差,誤差校正單元228可產生一有效性旗標224。若資料222包括針對資料220中之誤差之校正,則錯誤校正檢查器單元229可產生一經啟動有效性旗標224。若資料222不包括校正,則錯誤校正檢查器單元229可產生一撤銷啟動有效性旗標224。錯誤校正檢查器單元229可將有效性旗標224提供至一控制器及/或由控制器裝載之AD解碼器。
在一些實例中,FD解碼器210可將資料222、有效性旗標224及同位檢查位元226提供至控制器而無關於資料222是否包含校正。在其他實例中,FD解碼器210可將資料222及有效性旗標224提供至控制器而無關於資料222是否含有校正。若資料222不含有校正,則FD解碼器210可將同位檢查位元226提供至控制器。
圖3繪示根據本發明之數項實施例之與利用一FD解碼器及一AD解碼器校正誤差相關聯之一流程圖330。圖3包含一外編碼器306、一內編碼器308、一記憶體裝置304、一內解碼器312及一外解碼器310。圖3展示使用一外FD碼之序列碼級聯。
外編碼器306可為一FE編碼器,內編碼器308可為一AE編碼器。內解碼器312可為一AD解碼器且外解碼器310可為一FD解碼器。儘管未展示,記憶體裝置304可包含一FD解碼器。內解碼器312及外解碼器310可由一控制器裝載。在一些實例中,外編碼器306及內編碼器308由控制器裝載。
由記憶體裝置304所裝載之FD解碼器產生之有效性旗標及資料可用於判定是否將資料提供至內解碼器312及/或外解碼器310。例如,由記憶體裝置304裝載之FD解碼器可回應於產生具有諸如一邏輯「0」(其指示資料未經校正(例如,原始))之一預定值之一有效性旗標而將原始資料提供至內解碼器312。由記憶體裝置304裝載之FD解碼器可回應於產生具有諸如一邏輯「1」(其指示資料經校正)之一預定值之一有效性旗標而將經校正資料提供至內解碼器312。
外編碼器306可編碼小資料塊(例如,原始資料)以產生快速碼字。可使用內編碼器308編碼快速碼字以產生精確碼字。精確碼字可稱為一精確碼。精確碼可為一系統碼。即,精確碼可分離資料與同位檢查位元。
在一解碼階段中,內解碼器312可解碼精確碼以產生快速碼字。外解碼器310可解碼快速碼字以產生該小資料塊。在內解碼器312之後利用外解碼器310可增加實施流程圖330之一系統之誤差校正能力。
即,外解碼器310可消除可能誤差底限。外解碼器310可用於提供優於內解碼器312之效能。在一些實例中,內解碼器312及外解碼器310可操作不同大小之資料塊。例如,小資料塊可為一第一大小且精確碼字可為一第二大小,其中第二大小大於第一大小。
FD解碼器之複製歸因於精確碼之系統性質而變得可行。FD解碼器之複製係指使用記憶體裝置304中之一FD解碼器及使用外解碼器310。歸因於精確碼之系統性質,可為記憶體裝置304中之FD解碼器提供在內解碼器312之前校正誤差之一機會及/或為外解碼器310提供校正誤差之一機會。
儘管使用一序列碼級聯展示圖3中之實例,然本文中描述之實例可擴展至使用一內FD碼之串聯或並聯級聯。
圖4繪示根據本發明之數項實施例之一碼字440之一實例。碼字440包含AD資料442及AD同位檢查位元444。AD資料442包括FD資料446及FD同位檢查位元448。
在將資料儲存於記憶體裝置(例如,記憶體裝置304)中之前,作用於資料塊(例如,FD資料446塊)之一外編碼器(例如,外編碼器306)藉由添加對應於各塊之FD同位檢查位元448而將FD資料446塊之各者編碼為FD碼字。即,將FD資料446塊循序編碼為包括FD資料446及FD同位檢查位元448之N個FD碼字。
藉由內編碼器(例如,內編碼器308)將N個FD碼字編碼為N個AD碼字。內編碼器將N個FD碼字處理為AD資料442,其中AD資料442塊之各者係不同於N個FD碼字之一碼字。內編碼器針對AD資料442塊之各者產生AD同位檢查位元444。AD同位檢查位元444取決於FD同位檢查位元448。
在一解碼階段中,藉由一FD解碼器試探性地解碼FD碼字。若正確解碼FD碼字(例如,若FD碼字不具有誤差或校正數個誤差),則針對全部FD碼字設定一有效性旗標且抑制AD解碼器。若FD碼字之至少一者未由FD解碼器校正且FD解碼器偵測到存在一誤差,則啟動AD解碼器且AD解碼器處理FD碼字。
在一些實施例中,在記憶體中實施FD解碼器以減小一FD解碼器中與校正誤差相關聯之延時。FD解碼器可與AD解碼器通信以請求AD解碼器參與完成解碼程序。即,FD解碼器可起始解碼程序且FD解碼器可經由一有效性旗標請求AD解碼器完成解碼程序。有效性旗標可用於警告AD解碼器可校正資料及/或用於啟動AD解碼器。
在一些實例中,可使用一內AD解碼器複製串行級聯方案。可在一記憶體裝置中實施FE編碼器及FD解碼器兩者以減小延時。FD解碼器可將同位檢查位元及一有效性旗標提供至AD解碼器以容許AD解碼器基於FD解碼器先前是否已解碼資料(例如,校正資料中之誤差)而解碼資料。
儘管已在本文中繪示及描述特定實施例,但一般技術者將暸解,經計算以達成相同結果之一配置可取代所展示之特定實施例。本發明意欲涵蓋本發明之各種實施例之調適或變動。應理解,已以一闡釋性方式而非一限制性方式進行上文描述。熟習此項技術者在檢視上文描述後將明白上文實施例及本文中未具體描述之其他實施例之組合。本發明之各種實施例之範疇包含其中使用上文結構及方法之其他應用。因此,應參考隨附發明申請專利範圍連同此等發明申請專利範圍所授權之等效物之全部範圍判定本發明之各種實施例之範疇。
在前述實施方式中,出於簡化本發明之目的而將各種特徵集合於一單一實施例中。本發明之此方法不應解釋為反映本發明之所揭示實施例必須使用多於各技術方案中明確敘述之特徵之一意圖。實情係,如下列發明申請專利範圍反映,本發明標的物在於少於一單一所揭示實施例之所有特徵。因此,特此將下列發明申請專利範圍併入實施方式中,其中各技術方案獨立作為一單獨實施例。
100‧‧‧記憶體系統
102‧‧‧控制器
104‧‧‧記憶體裝置
106-1‧‧‧快速編碼(FE)編碼器
106-2‧‧‧快速編碼(FE)編碼器
108‧‧‧精確編碼(AE)編碼器
110-1‧‧‧快速解碼(FD)解碼器
110-2‧‧‧快速解碼(FD)解碼器
112‧‧‧精確解碼(AD)解碼器
114‧‧‧記憶體陣列
210‧‧‧快速解碼(FD)解碼器
220‧‧‧資料
222‧‧‧資料/經校正資料/原始資料
224‧‧‧有效性旗標
226‧‧‧同位檢查位元
227‧‧‧校正子運算單元
228‧‧‧誤差校正單元
229‧‧‧錯誤校正檢查器單元
304‧‧‧記憶體裝置
306‧‧‧外編碼器
308‧‧‧內編碼器
310‧‧‧外解碼器
312‧‧‧內解碼器
330‧‧‧流程圖
440‧‧‧碼字
442‧‧‧精確解碼(AD)資料
444‧‧‧精確解碼(AD)同位檢查位元
446‧‧‧快速解碼(FD)資料
448‧‧‧快速解碼(FD)同位檢查位元
圖1係能夠實施本發明之數項實施例之包含一記憶體裝置及一控制器之一記憶體系統之一方塊圖。
圖2係根據本發明之數項實施例之能夠校正誤差之一快速解碼(FD)解碼器之方塊圖。
圖3繪示根據本發明之數項實施例之與利用一FD解碼器及一精確解碼(AD)解碼器校正誤差相關聯之一流程圖。
圖4繪示根據本發明之數項實施例之一碼字之一實例。

Claims (23)

  1. 一種記憶體裝置,其包括: 一陣列; 一第一解碼器,其經組態以: 從該記憶體陣列接收輸入資料; 對該輸入資料執行與一誤差偵測相關聯之複數個操作;及 基於處理該輸入資料而將輸出資料、一驗證旗標及複數個同位檢查位元提供至由耦合至該記憶體裝置之一控制器裝載之一第二解碼器。
  2. 如請求項1之記憶體裝置,其中該第一解碼器經進一步組態以判定該輸入資料含有一誤差。
  3. 如請求項2之記憶體裝置,其中該第一解碼器經進一步組態以校正該誤差以產生該輸出資料。
  4. 如請求項2之記憶體裝置,其中該第一解碼器經進一步組態以基於不校正該誤差之一判定而傳遞該輸入資料作為該輸出資料。
  5. 如請求項2之記憶體裝置,其中該有效性旗標描述該輸出資料中是否校正該誤差。
  6. 如請求項1至2中任一項之記憶體裝置,其中該複數個同位檢查位元用於進行該誤差偵測。
  7. 如請求項1至2中任一項之記憶體裝置,其中該解碼器係一誤差校正碼解碼器。
  8. 如請求項1至2中任一項之記憶體裝置,其中該第二解碼器係一誤差校正碼解碼器。
  9. 如請求項1之記憶體裝置,其中該第一解碼器經進一步組態以判定該輸入資料不含有一誤差。
  10. 如請求項9之記憶體裝置,其中該第一解碼器經進一步組態以基於判定該輸入資料不含有該誤差而提供該輸入資料作為該輸出資料。
  11. 一種耦合至一記憶體裝置之控制器,其包括: 一精確解碼(AD)解碼器,其經組態以: 從由該記憶體裝置裝載之一第一快速解碼(FD)解碼器接收資料、一有效性旗標及同位檢查位元; 回應於判定該有效性旗標係一第一值,將該資料及該等同位檢查位元提供至一第二FD解碼器; 回應於判定該有效性旗標係一第二值: 使用該等同位檢查位元對該資料執行誤差校正操作; 將該經校正資料及該等同位檢查位元提供至該第二FD解碼器;及 該第二FD解碼器,其經組態以使用該等同位檢查位元對該資料執行誤差校正。
  12. 如請求項11之控制器,其中該AD解碼器經進一步組態以在該有效性旗標包括該第一值之情況下接收經校正資料。
  13. 如請求項11之控制器,其中該AD解碼器經進一步組態以在該有效性旗標包括該第二值之情況下接收原始資料。
  14. 如請求項11至13中任一項之控制器,其中該AD解碼器係一內解碼器且該第二FD解碼器係一外解碼器。
  15. 一種設備,其包括: 一記憶體陣列,其經組態以儲存資料及同位檢查位元;及 一快速解碼(FD)解碼器,其經組態以接收該資料及該等同位檢查位元且包括: 一校正子運算單元,其經組態以從該資料及該等同位檢查位元產生一校正子; 一誤差校正單元,其經組態以: 使用該校正子及該等同位檢查位元對該資料執行一誤差校正碼以基於校正該資料之一判定而產生經校正資料;及 將該資料及該經校正資料之至少一者提供至由一控制器裝載之一精確解碼(AD)解碼器;及 一錯誤校正檢查器單元,其經組態以: 基於該誤差校正單元是否將該資料或該經校正資料提供至該AD解碼器而產生一有效性旗標;及 將該有效性旗標提供至該AD解碼器。
  16. 如請求項15之設備,其中該錯誤校正檢查器單元經進一步組態以基於由該校正子運算單元提供之該校正子產生該有效性旗標。
  17. 如請求項15至16中任一項之設備,其中該錯誤校正檢查器單元經進一步組態以從該誤差校正單元接收一訊息,該訊息描述該誤差校正單元是否將該資料或該經校正資料之該至少一者提供至該AD解碼器。
  18. 如請求項15至16中任一項之設備,其中FD解碼器進一步包括一同位檢查位元線。
  19. 一種用於使用一快速解碼(FD)解碼器執行一誤差校正碼之方法,其包括: 判定是否使用由一記憶體裝置裝載之該FD解碼器對一頁執行一第一誤差校正碼; 基於執行該第一誤差校正之一判定: 從該頁及同位檢查位元產生一經校正頁;及 產生一第一有效性旗標; 將該第一有效性旗標及該經校正頁提供至一微控制器;及 基於不執行該第一誤差校正碼之一判定: 產生一第二有效性旗標; 將該第二有效性旗標、該頁及該等同位檢查位元提供至該微控制器。
  20. 如請求項19之方法,其進一步包括基於接收該第二有效性旗標,使用由該微控制器裝載之一精確解碼(AD)解碼器利用該等同位檢查位元對該頁執行一第二誤差校正碼。
  21. 如請求項19之方法,其進一步包括基於接收該第一有效性旗標,放棄對該頁執行一第二誤差校正碼。
  22. 如請求項19至21中任一項之方法,其中該FD解碼器利用代數解碼。
  23. 如請求項19至21中任一項之方法,其中該FD解碼器利用組合邏輯。
TW108113525A 2018-04-20 2019-04-18 使用階層式解碼器之誤差校正 TWI697908B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/958,496 US10606694B2 (en) 2018-04-20 2018-04-20 Error correction using hierarchical decoders
US15/958,496 2018-04-20

Publications (2)

Publication Number Publication Date
TW201944426A true TW201944426A (zh) 2019-11-16
TWI697908B TWI697908B (zh) 2020-07-01

Family

ID=68236392

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108113525A TWI697908B (zh) 2018-04-20 2019-04-18 使用階層式解碼器之誤差校正

Country Status (6)

Country Link
US (2) US10606694B2 (zh)
JP (1) JP7157516B2 (zh)
KR (1) KR102414202B1 (zh)
CN (1) CN111989746B (zh)
TW (1) TWI697908B (zh)
WO (1) WO2019204017A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12067254B2 (en) * 2021-05-21 2024-08-20 Samsung Electronics Co., Ltd. Low latency SSD read architecture with multi-level error correction codes (ECC)
KR20230083689A (ko) * 2021-12-03 2023-06-12 서울대학교산학협력단 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689727A (en) * 1994-09-08 1997-11-18 Western Digital Corporation Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution
US7043679B1 (en) 2002-06-27 2006-05-09 Advanced Micro Devices, Inc. Piggybacking of ECC corrections behind loads
KR100826511B1 (ko) * 2006-06-27 2008-05-02 삼성전자주식회사 스터핑 바이트를 이용하여 에러정정 능력을 높일 수 있는장치와 방법
JP2009271956A (ja) * 2008-04-30 2009-11-19 Toshiba Corp データ復号装置,データ再生装置,およびデータ復号方法
US8176399B2 (en) 2008-05-02 2012-05-08 Lsi Corporation Using short burst error detector in a queue-based system
JP2010033181A (ja) * 2008-07-25 2010-02-12 Toshiba Microelectronics Corp エラー訂正回路、および半導体メモリシステム
KR20110073932A (ko) * 2009-12-24 2011-06-30 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법
KR101678053B1 (ko) * 2010-04-02 2016-11-22 삼성전자 주식회사 반도체 장치 및 이의 복호 방법
WO2012097046A1 (en) * 2011-01-14 2012-07-19 Marvell World Trade Ltd. Ldpc multi-decoder architectures
US8645789B2 (en) * 2011-12-22 2014-02-04 Sandisk Technologies Inc. Multi-phase ECC encoding using algebraic codes
US8656257B1 (en) * 2012-01-11 2014-02-18 Pmc-Sierra Us, Inc. Nonvolatile memory controller with concatenated error correction codes
CN103247347B (zh) * 2012-02-11 2017-07-25 三星电子株式会社 提供智能存储器架构的方法和系统
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
CN103839594A (zh) * 2012-11-27 2014-06-04 建兴电子科技股份有限公司 固态储存装置及其联合编解码方法
KR102143517B1 (ko) * 2013-02-26 2020-08-12 삼성전자 주식회사 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US9164832B2 (en) * 2013-02-27 2015-10-20 Seagate Technology Llc ECC management for variable resistance memory cells
KR101913900B1 (ko) * 2013-04-30 2018-10-31 웨스턴 디지털 테크놀로지스, 인코포레이티드 조기 디코딩 종료 검출을 갖는 디코더
US9148176B2 (en) * 2013-06-24 2015-09-29 Micron Technology, Inc. Circuits, apparatuses, and methods for correcting data errors
JP6028709B2 (ja) * 2013-10-18 2016-11-16 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US9524242B2 (en) 2014-01-28 2016-12-20 Stmicroelectronics International N.V. Cache memory system with simultaneous read-write in single cycle
KR102347418B1 (ko) * 2015-09-25 2022-01-06 에스케이하이닉스 주식회사 데이터 처리 장치 및 그것의 동작 방법
US9912355B2 (en) 2015-09-25 2018-03-06 Intel Corporation Distributed concatenated error correction
US10193576B2 (en) * 2015-10-30 2019-01-29 Toshiba Memory Corporation Memory system and memory device
KR20170068681A (ko) * 2015-12-09 2017-06-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9786362B1 (en) * 2016-08-26 2017-10-10 Arm Limited Memory circuit and data processing system
US10475524B2 (en) * 2016-09-15 2019-11-12 Apple Inc. Recovery of data read from memory with unknown polarity

Also Published As

Publication number Publication date
KR102414202B1 (ko) 2022-06-27
US20200226020A1 (en) 2020-07-16
TWI697908B (zh) 2020-07-01
KR20200133808A (ko) 2020-11-30
CN111989746B (zh) 2024-06-18
US10606694B2 (en) 2020-03-31
US20190324848A1 (en) 2019-10-24
EP3782156A1 (en) 2021-02-24
WO2019204017A1 (en) 2019-10-24
JP2021520555A (ja) 2021-08-19
US11237901B2 (en) 2022-02-01
JP7157516B2 (ja) 2022-10-20
CN111989746A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
KR102179228B1 (ko) 메모리에서의 티어드 오류 정정 코드(ecc) 동작
US10998923B2 (en) Stopping criteria for layered iterative error correction
US10075190B2 (en) Adaptive scheduler for decoding
US10326479B2 (en) Apparatuses and methods for layer-by-layer error correction
US20120246507A1 (en) Parallel memory error detection and correction
CN116745849A (zh) 存储器装置保护
TWI697908B (zh) 使用階層式解碼器之誤差校正
US11416331B2 (en) Modified checksum using a poison data pattern
US20190056992A1 (en) Data storage device and operating method thereof
CN109669801B (zh) 包括验证信号发生电路的电子设备
US20200394100A1 (en) Host-based error correction
US11949428B2 (en) Iterative error correction in memory systems
US11256565B2 (en) Transaction metadata
US11048602B2 (en) Electronic devices
US20230282300A1 (en) Semiconductor device and semiconductor system