TWI671749B - 用於提供冗餘錯誤校正之記憶體中之錯誤校正碼操作 - Google Patents

用於提供冗餘錯誤校正之記憶體中之錯誤校正碼操作 Download PDF

Info

Publication number
TWI671749B
TWI671749B TW107108956A TW107108956A TWI671749B TW I671749 B TWI671749 B TW I671749B TW 107108956 A TW107108956 A TW 107108956A TW 107108956 A TW107108956 A TW 107108956A TW I671749 B TWI671749 B TW I671749B
Authority
TW
Taiwan
Prior art keywords
data
syndrome
bits
codeword
error
Prior art date
Application number
TW107108956A
Other languages
English (en)
Other versions
TW201842510A (zh
Inventor
帕特里克 R 哈亞特
西瓦格纳纳穆 帕塔薩拉蒂
穆斯塔法 N 凱納克
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 TW201842510A publication Critical patent/TW201842510A/zh
Application granted granted Critical
Publication of TWI671749B publication Critical patent/TWI671749B/zh

Links

Classifications

    • 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/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/2918Coding, 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 with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • 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/2945Coding, 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 at least three error correction 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/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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] 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/2909Product codes

Abstract

本發明提供用於執行一錯誤校正碼(ECC)操作之設備及方法。一種實例性方法可包含:藉由包含用於若干交叉位元之同位資料來編碼資料,其中該若干交叉位元係定位於行碼字及列碼字之相交點處之位元。

Description

用於提供冗餘錯誤校正之記憶體中之錯誤校正碼操作
本發明大體上係關於記憶體裝置,且更特定言之,本發明係關於用於提供冗餘錯誤校正之錯誤校正操作之設備及方法。
通常將記憶體裝置提供為電腦或其他電子裝置中之內部半導體積體電路。存在包含揮發性記憶體及非揮發性記憶體之諸多不同類型之記憶體。揮發性記憶體需要電力來保存其資料且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)等等。非揮發性記憶體可藉由在不被供電時留存儲存資料來提供持久性資料且可包含「反及」快閃記憶體、「反或」快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM (EEPROM)、可擦除可程式化ROM (EPROM)及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM)、電阻式隨機存取記憶體(RRAM)及磁阻式隨機存取記憶體(MRAM))等等。 可將記憶體裝置組合在一起以形成諸如一固態磁碟機(SSD)之一記憶體系統之儲存容量。一固態磁碟機可包含非揮發性記憶體(例如「反及」快閃記憶體及「反或」快閃記憶體)及/或可包含揮發性記憶體(例如DRAM及SRAM)以及各種其他類型之非揮發性及揮發性記憶體。 可使用一SSD作為一電腦之主儲存容量來替換硬碟機,此係因為固態磁碟機可在效能、大小、重量、耐用性、操作溫度範圍及電力消耗方面優於硬碟機。例如,SSD可歸因於其缺乏移動部件而具有比磁碟機優異之效能,其可避免與磁碟機相關聯之搜尋時間、延時及其他機電延遲。 記憶體亦用作各種電子應用之揮發性及非揮發性資料儲存器。非揮發性記憶體可用於(例如)個人電腦、可攜式記憶體棒、數位相機、蜂巢式電話、可攜式音樂播放器(諸如MP3播放器)、電影播放器及其他電子裝置。記憶體胞元可配置成陣列,且陣列用於記憶體裝置中。
本發明提供用於執行一錯誤校正碼(ECC)操作之設備及方法。一種實例性方法可包含:藉由包含用於若干交叉位元之同位資料來編碼資料,其中該若干交叉位元係定位於行碼字及列碼字之相交點處之位元。 可使用一第一碼(例如一外碼)及一第二碼(例如一內碼)來編碼資料。第一碼可為一BCH碼,且第二碼可為一按區塊串接產品碼。此外,可在編碼資料時包含用於定位於行碼字及列碼字之相交點處之交叉位元之同位資料。按區塊串接產品碼可包含定位於一行碼字及一列碼字之相交點處之複數個位元,其等由該行碼字及該列碼字保護。 在本發明之一或多個實施例中,可在解碼資料時使用用於交叉位元之同位資料來校正已達到一錯誤底限(例如一停頓型態(stall pattern))時之資料中之錯誤。已使用按區塊串接碼來編碼之資料係其中一列碼與一行碼之間之交叉點由複數個位元組成之習知區塊碼之一擴充。當執行資料之反覆解碼時,解碼此等類型之碼會達到一錯誤底限。歸因於錯誤底限之剩餘一或若干錯誤之位置可能位於行碼字及列碼字之一相交點處,其導致解碼失效,例如比碼可校正之錯誤多之錯誤數目。用於定位於行碼字及列碼字之相交點處之交叉位元之同位資料可用於校正歸因於錯誤底限而留下之錯誤。用於交叉位元之同位資料可與編碼資料一起儲存於記憶體中且可藉由對定位於行碼字及列碼字之相交點處之各組位元執行一「互斥或」運算來產生。 在若干實施例中,使用用於交叉位元之同位資料來解碼內碼可增強用於一給定原始位元錯誤率(RBER)之一ECC操作之校正能力。因此,較少外碼解碼器可用於一記憶體系統中及/或可共用於若干通道之間。此外,用於交叉位元之同位資料可對一系統提供足夠校正能力,使得無需一外碼來校正錯誤。 在本發明之以下詳細描述中,參考構成本發明之一部分之附圖,且附圖中依繪示方式展示可如何實踐本發明之若干實施例。足夠詳細地描述此等實施例以使一般技術者能夠實踐本發明之該等實施例,且應瞭解,可利用其他實施例且可在不背離本發明之範疇的情況下作出程序、電性及/或結構變化。如本文中所使用,標示符「N」指示所標示之特定特徵之一數目可包含於本發明之若干實施例中。 如本文中所使用,「若干」某物可係指一或多個此等事物。例如,若干記憶體裝置可係指一或多個記憶體裝置。另外,如本文中所使用,諸如「N」之標示符(尤其相對於圖式中之元件符號)指示:所標示之特定特徵之一數目可包含於本發明之若干實施例中。 本文中之圖式遵循一編號慣例,其中前一或若干數字對應於圖號且其餘數字識別圖式中之一元件或組件。可藉由使用類似數字來識別不同圖之間之類似元件或組件。應瞭解,可新增、置換及/或消除本文各種實施例中所展示之元件以提供本發明之若干額外實施例。另外,圖中所提供之元件之比例及相對尺度意欲繪示本發明之各種實施例且不意在限制。 圖1係根據本發明之一或多個實施例之包含呈至少一記憶體系統104之形式之一設備之一運算系統100之一功能方塊圖。如本文中所使用,一「設備」可係指(但不限於)各種結構或結構組合之任何者,諸如(例如)一電路或電路系統、一或若干晶粒、一或若干模組、一或若干裝置或一或若干系統。在圖1所繪示之實施例中,記憶體系統104可包含一控制器108及一或多個記憶體裝置110-1、...、110-N。在此實例中,控制器108位於一或多個記憶體裝置110-1、...、110-N外。記憶體裝置110-1、...、110-N可提供記憶體系統之一儲存容量,例如,具有格式化至記憶體裝置之一檔案系統。在若干實施例中,若干記憶體裝置110-1、...、110-N可包含含有若干邏輯單元(LUN)之非揮發性記憶體。一LUN可為可獨立控制之非揮發性記憶體之一部分。控制器108可包含控制電路系統,例如硬體、韌體及/或軟體。在一或多個實施例中,控制器108可為耦合至包含一實體介面及記憶體裝置110-1、...、110-N之一印刷電路板之一專用積體電路(ASIC)。此外,控制器可包含揮發性及/或非揮發性記憶體。 控制器108可包含用於對資料執行ECC 130操作以(例如)校正資料中之錯誤之硬體、韌體及/或軟體。例如,可藉由ECC 130來校正歸因於臨限電壓移位之一記憶體胞元之狀態錯誤。ECC操作可包含用於僅基於硬資料來校正錯誤之常規ECC操作及可使用軟資料來校正錯誤之進階ECC操作。使用常規ECC及/或進階ECC可(例如)取決於出錯胞元之數目,例如錯誤位元之數量。 在本發明之若干實施例中,執行ECC 130操作。可使用一第一碼(例如一外碼132)及一第二碼(例如一內碼134)來編碼資料。第一碼可為一BCH碼,且第二碼可為一按區塊串接產品碼。此外,可在編碼資料時包含用於定位於行碼字及列碼字之相交點處之交叉位元之同位資料。當一解碼操作已達到一錯誤底限且無法再校正定位於一行碼字及一列碼字之一特定相交點處之錯誤時,可使用用於交叉位元之同位資料來校正定位於行碼字及列碼字之特定相交點處之錯誤。 如圖1中所繪示,一主機102可耦合至記憶體系統104。主機102可為膝上型電腦、個人電腦、數位相機、數位記錄及播放裝置、行動電話、PDA、記憶體讀卡機、介面中樞及其他主機系統,且可包含一記憶體存取裝置(例如一處理器)。一般技術者應瞭解,「一處理器」可意指一或多個處理器,諸如一平行處理系統、若干協同處理器等等。 在一或多個實施例中,一實體主機介面可呈一標準化介面之形式。例如,當記憶體系統104在一運算系統100中用於資料儲存時,一實體主機介面可為一串列進階技術附件(SATA)、周邊組件互連快速(PCIe)或一通用串列匯流排(USB)及其他連接器及介面。然而,一般而言,一實體主機介面可提供用於使控制、位址、資料及其他信號在記憶體系統104與具有用於實體主機介面之相容受體之一主機102之間通過之一介面。 控制器108可與記憶體裝置110-1、...、110-N通信以讀取、寫入及擦除資料等等。控制器108可具有可為一或多個積體電路及/或離散組件之電路系統。一控制器可選擇性地耦合一記憶體裝置110-1、...、110-N之一I/O連接(圖1中未展示)以在適當時間經由適當I/O連接接收適當信號。類似地,一主機102與記憶體系統104之間之通信協定可不同於存取一記憶體裝置110-1、...、110-N所需之通信協定。控制器108可將自一主機接收之命令轉譯成適合於達成對一記憶體裝置110-1、...、110-N之所要存取之命令。 一記憶體裝置110-1、...、110-N可包含一或多個記憶體胞元(例如非揮發性記憶體胞元)陣列。例如,陣列可為具有一「反及」架構之快閃陣列。實施例不受限於一特定類型之記憶體裝置。例如,記憶體裝置可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM及快閃記憶體等等。 記憶體裝置110-1、...、110-N可包含可經分組之若干記憶體胞元。如本文中所使用,一群組可包含一或多個記憶體胞元,諸如一頁、區塊、平面、晶粒、一整個陣列或其他記憶體胞元群組。例如,一些記憶體陣列可包含組成記憶體胞元之一區塊之若干記憶體胞元頁。若干區塊可包含於記憶體胞元之一平面中。記憶體胞元之若干平面可包含於一晶粒上。作為一實例,一128 GB記憶體裝置可包含每頁4314個資料位元組、每區塊128頁、每平面包含2048個區塊及每裝置16個平面。 在一記憶體裝置中,一實體頁可係指一寫入及/或讀取單元,例如經一起寫入及/或讀取或作為記憶體胞元之一功能群組之若干胞元。可使用單獨寫入及/或讀取操作來寫入及/或讀取一偶數頁及一奇數頁。針對包含多層胞元(MLC)之實施例,可在邏輯上將一實體頁分成(例如)資料之一上部頁及一下部頁。例如,一記憶體胞元可使一或多個位元促成資料之一上部頁且使一或多個位元促成資料之一下部頁。相應地,可寫入及/或讀取資料之一上部頁及一下部頁作為一寫入及/或讀取操作之部分,此係因為邏輯上部頁及邏輯下部頁係相同實體頁之兩個部分。 圖1之實施例可包含為避免使本發明之實施例不清楚而未繪示之額外電路系統。例如,記憶體系統104可包含用於鎖存透過I/O電路系統之I/O連接上所提供之位址信號之位址電路系統。可由一列解碼器及一行解碼器接收及解碼位址信號以存取記憶體裝置110-1、...、110-N。熟悉技術者應瞭解,位址輸入連接之數目可取決於記憶體裝置110-1、...、110-N之密度及架構。 一般而言,控制器108負責將自主機102 (例如,自一PCIe匯流排)接收之命令封包轉換成用於主機記憶體轉譯電路系統之命令指令及將記憶體回應轉換成用於傳輸至請求主機之主機系統命令。 在一或多個實施例中,可一次一頁地將資料寫入至記憶體裝置。記憶體裝置中之各頁可具有若干實體區段且各實體區段可與一邏輯區塊位址(LBA)相關聯。作為一實例,一實體頁可具有8個資料實體區段。然而,實施例不限於每實體頁之特定數目個實體區段。 圖2係包括可根據本發明之若干實施例操作之一記憶體胞元陣列之記憶體210之一部分之一示意圖。圖2之實施例繪示一「反及」架構非揮發性記憶體陣列;然而,本文中所描述之實施例不受限於此實例。例如,可對一「反或」架構非揮發性記憶體陣列實施若干實施例。如圖2中所展示,記憶體陣列包含存取線(例如字線205-1、...、205-N)及相交資料線(例如局部位元線207-1、207-2、207-3、...、207-M)。為便於在數位環境中定址,字線205-1、...、205-N之數目及局部位元線207-1、207-2、207-3、...、207-M之數目可為2之某一冪(例如256個字線×4,096個位元線)。 記憶體陣列包含「反及」串209-1、209-2、209-3、...、209-M。各「反及」串包含各通信地耦合至一各自字線205-1、...、205-N之非揮發性記憶體胞元211-1、...、211-N。各「反及」串(及其組成記憶體胞元)亦與一局部位元線207-1、207-2、207-3、...、207-M相關聯。各「反及」串209-1、209-2、209-3、...、209-M之記憶體胞元211-1、...、211-N源極至汲極地串聯耦合於一選擇閘極源極(例如一場效電晶體(FET) 213)與一選擇閘極汲極(例如FET 219)之間。各選擇閘極源極213經組態以回應於源極選擇線217上之一信號而將一各自「反及」串選擇性地耦合至一共同源極223,而各選擇閘極汲極219經組態以回應於汲極選擇線215上之一信號而將一各自「反及」串選擇性地耦合至一各自位元線。 如圖2所繪示之實施例中所展示,選擇閘極源極213之一源極耦合至一共同源極線223。選擇閘極源極213之汲極耦合至對應「反及」串209-1之記憶體胞元211-1之源極。選擇閘極汲極219之汲極在汲極接點221-1處耦合至對應「反及」串209-1之位元線207-1。選擇閘極汲極219之源極耦合至對應「反及」串209-1之最後記憶體胞元211-N (例如一浮動閘極電晶體)之汲極。 在若干實施例中,非揮發性記憶體胞元211-1、...、211-N之建構包含一源極、一汲極、一浮動閘極或其他電荷儲存結構及一控制閘極。記憶體胞元211-1、...、211-N使其控制閘極分別耦合至一字線205-1、...、205-N。將類似地佈置一「反或」陣列架構,但記憶體胞元串將並聯耦合於選擇閘極之間。例如,各記憶體胞元(例如圖2中所繪示之一記憶體胞元211-N)之一端可耦合至一位元線,且相同記憶體胞元之另一端可耦合至可與位元線平行對準之一源極線。此外,一「反或」架構可提供對陣列中之記憶體胞元之隨機存取(例如,不同於一「反及」架構基於頁之存取)。 在操作中,可將耦合至一選定字線(例如205-1、...、205-N)之若干記憶體胞元作為一群組來一起寫入及/或讀取。一起寫入及/或讀取之記憶體胞元之一群組可指稱胞元之一頁(例如一實體頁)且可儲存若干資料頁(例如邏輯頁)。耦合至一特定字線且一起經程式化為各自資料狀態之若干記憶體胞元可指稱一目標頁。一程式化操作可包含:將對應於用於程式化記憶體胞元之一特定程式化演算法之若干程式脈衝(例如16 V至20 V)施加至一選定字線以使耦合至該選定字線之選定胞元之臨限電壓(Vt)增大至對應於一目標資料狀態之一所要電壓位準。 讀取操作可包含:感測耦合至一選定胞元之一位元線之一電壓及/或電流變化以判定選定胞元之狀態。讀取操作可包含:在一選定胞元開始傳導時對一位元線預充電且感測放電。一讀取操作類型包括將一斜變讀取信號施加至一選定字線,且另一讀取操作類型包括將若干離散讀取信號施加至選定字線以判定胞元之狀態。 圖3係根據本發明之若干實施例之儲存於記憶體中之編碼資料之一方塊圖。在圖3中,使用按區塊串接產品碼來編碼資料。編碼資料儲存於各具有若干位元之行組件碼字344-1、...、344-X及各具有若干位元之列組件碼字342-1、...、342-Y中。編碼資料包含ECC有效負載346、外碼同位資料348、行組件碼字同位資料352及列組件碼字同位資料350及交叉同位資料354。交叉同位資料(Pco ) 354可儲存於列碼字342-Y及行碼字344-X之相交點處。行組件碼字344-1、...、344-X及列組件碼字342-1、...、342-Y之相交點包含由交叉同位資料354保護之一位元區塊。 圖4係根據本發明之若干實施例之一寫入路徑之一方塊圖。在圖4中,寫入操作可包含:使用一外碼編碼器460來編碼資料;產生交叉同位資料464;及使用一內碼編碼器462來編碼資料(例如使用者資料、外碼同位資料及/或交叉同位資料)。可藉由對定位於一列組件碼字及一行組件碼字(例如圖3中之行碼字344-1、...、344-24及列碼字342-1、...、342-24)之一相交點處之位元區塊執行一「互斥或」運算來產生交叉同位資料。接著,當一解碼操作(例如內碼解碼)達到一錯誤底限且無法校正定位於一列碼字及一行碼字之一特定相交點處之錯誤時,可使用交叉同位資料來校正定位於列碼字及行碼字之特定相交點處之錯誤。 圖5係根據本發明之若干實施例之寫入至記憶體之編碼資料之一方塊圖。在圖5中,自編碼器460、462及464串流輸出資料作為ECC有效負載546及接著作為行組件碼字同位資料552。接著,資料串流繼續為外碼同位資料548及行組件碼字同位資料552。資料串流繼續為交叉位元同位554、行組件碼字同位資料552及列組件碼字同位資料550。 圖6繪示根據本發明之若干實施例之用於一錯誤校正碼(ECC)操作之一流程圖。當自一記憶體胞元陣列讀取編碼資料時,完成一內碼解碼670操作以校正資料中之錯誤。此外,針對定位於列組件碼字及行組件碼字之相交點處之資料區塊運算一交叉同位校正子672。當內碼解碼程序670校正資料中之錯誤時,更新交叉同位校正子672。 在完成內碼解碼670操作之後,若全部內碼解碼校正子674係0及/或交叉同位校正子673等於0,則完成解碼程序,此係因為資料中之全部錯誤已被校正。若存在不等於0之任何內碼解碼校正子674及/或交叉同位校正子673不等於0,則解碼程序繼續。回應於一內碼解碼校正子674不等於0及/或交叉同位校正子673不等於0且存在一11停頓型態676 (例如,內碼解碼程序之一錯誤底限定位於一列組件碼字及一行組件碼字之一特定相交點處),則對交叉同位校正子及交叉資料678執行一「互斥或」運算以校正定位於列組件碼字及行組件碼字之特定相交點處之錯誤。若不存在一11停頓型態676 (例如,內碼解碼程序之一錯誤底限定位於一列組件碼字及一行組件碼字之一特定相交點處),則回應於內碼解碼校正子674不等於0而藉由執行一外碼解碼680操作來繼續解碼程序。 儘管已在本文中繪示及描述特定實施例,但一般技術者應暸解,經計算以達成相同結果之一配置可取代所展示之特定實施例。本發明意欲涵蓋本發明之各種實施例之調適或變動。應瞭解,已依一繪示而非限制方式進行以上描述。熟悉技術者將在檢視以上描述之後明白上述實施例之組合及未在本文中特別描述之其他實施例。本發明之各種實施例之範疇包含其中使用上述結構及方法之其他應用。因此,應參考隨附申請專利範圍以及此申請專利範圍有權涵蓋之等效物之全部範圍來判定本發明之各種實施例之範疇。 在[實施方式]中,為了簡化本發明而將各種特徵一起分組於一單一實施例中。本發明之方法不應被解譯為反映本發明之揭示實施例必須使用比各請求項中明確敘述之特徵多之特徵的一意圖。確切而言,如以下申請專利範圍所反映,發明標的置於一單一揭示實施例之非全部特徵中。因此,以下申請專利範圍藉此併入至[實施方式]中,其中各請求項獨自作為一單獨實施例。
100‧‧‧運算系統
102‧‧‧主機
104‧‧‧記憶體系統
108‧‧‧控制器
110-1至110-N‧‧‧記憶體裝置
130‧‧‧錯誤校正碼(ECC)
132‧‧‧外碼
134‧‧‧內碼
205-1至205-N‧‧‧字線
207-1至207-M‧‧‧局部位元線
209-1至209-M‧‧‧「反及」串
210‧‧‧記憶體
211-1至211-N‧‧‧非揮發性記憶體胞元
213‧‧‧選擇閘極源極/場效電晶體(FET)
215‧‧‧汲極選擇線
217‧‧‧源極選擇線
219‧‧‧選擇閘極汲極/FET
221-1‧‧‧汲極接點
223‧‧‧共同源極/共同源極線
342-1至342-Y‧‧‧列組件碼字
344-1至344-X‧‧‧行組件碼字
346‧‧‧ECC有效負載
348‧‧‧外碼同位資料
350‧‧‧列組件碼字同位資料
352‧‧‧行組件碼字同位資料
354‧‧‧交叉同位資料
460‧‧‧外碼編碼器
462‧‧‧內碼編碼器
464‧‧‧交叉同位資料/編碼器
546‧‧‧ECC有效負載
548‧‧‧外碼同位資料
550‧‧‧列組件碼字同位資料
552‧‧‧行組件碼字同位資料
554‧‧‧交叉位元同位
670‧‧‧內碼解碼
672‧‧‧交叉同位校正子
673‧‧‧交叉同位校正子
674‧‧‧內碼解碼校正子
676‧‧‧11停頓型態
678‧‧‧交叉資料
680‧‧‧外碼解碼
圖1係根據本發明之若干實施例之呈包含一記憶體系統之一運算系統之形式之一設備之一方塊圖。 圖2係包括可根據本發明之若干實施例操作之一記憶體胞元陣列之記憶體之一部分之一示意圖。 圖3係根據本發明之若干實施例之記憶體中之編碼資料之一方塊圖。 圖4係根據本發明之若干實施例之一寫入路徑之一方塊圖。 圖5係根據本發明之若干實施例之寫入至記憶體之編碼資料之一方塊圖。 圖6繪示根據本發明之若干實施例之用於一錯誤校正碼(ECC)操作之一流程圖。

Claims (23)

  1. 一種用於執行一錯誤校正碼(ECC)操作之方法,其包括:藉由包含用於若干交叉位元之同位資料來編碼資料,其中該若干交叉位元係定位於行碼字及列碼字之相交點處之位元;及藉由下述操作而在該編碼資料上執行該ECC操作:同時運算一第一校正子及一第二校正子,其中:該第一校正子指示該資料之位元內是否有一錯誤位元;及該第二校正子指示該若干交叉位元內是否有一錯誤位元;及基於該第一校正子及該第二校正子之至少一者而判定該資料包含一錯誤位元。
  2. 如請求項1之方法,其進一步包含:對定位於行碼字及列碼字之該等相交點處之該若干交叉位元之各者執行一「互斥或」運算以產生用於該若干交叉位元之該同位資料。
  3. 如請求項1之方法,其進一步包含:將用於該若干交叉位元之該同位資料儲存於一記憶體胞元陣列中;及藉由產生按區塊串接碼字來編碼資料。
  4. 如請求項1至3中任一項之方法,其進一步包含:使用一第一編碼器來編碼該資料;產生用於在使用該第一編碼器來編碼資料時產生之該若干交叉位元之該同位資料;及使用一第二編碼器來編碼該資料。
  5. 一種執行一錯誤校正碼(ECC)操作之方法,其包括:使用一第一編碼器來編碼資料;產生用於由該第一編碼器產生之交叉位元之同位資料,其中該等交叉位元係定位於按區塊串接之行碼字及列碼字之相交點處之位元;使用一第二編碼器來編碼該資料,其中該編碼資料係儲存於一記憶體胞元陣列中;在該編碼資料上執行該ECC操作以藉由下述操作而讀取該編碼資料:運算指示該資料之位元內是否有一錯誤位元之一第一校正子;及運算指示該資料之該等交叉位元內是否有一錯誤位元之一第二校正子;及其中該第二校正子係獨立於該第一校正子之一結果而運算。
  6. 如請求項5之方法,其中該第一編碼器及該第二編碼器係BCH編碼器,該方法進一步包含:使用用於該等交叉位元之該同位資料來校正該資料中之一錯誤,其中該資料中之該錯誤定位於行碼字及列碼字之一特定相交點處。
  7. 如請求項5之方法,其中該方法包含:藉由儲存包含使用者資料、行碼字同位資料、列碼字同位資料及第一編碼器同位資料之碼字來儲存該編碼資料;及將用於交叉位元之該同位資料儲存於具有比碼字之其他部分少之第一編碼器同位資料之碼字之部分中。
  8. 一種執行一錯誤校正碼(ECC)操作之方法,其包括:使用用於交叉位元之同位資料來校正資料中之一錯誤,其中該資料中之該錯誤定位於行碼字及列碼字之一特定相交點處;其中使用用於交叉位元之該同位資料來校正該資料中之該錯誤包括:運算指示該資料之位元內是否有一錯誤位元之一第一校正子;運算指示該資料之該等交叉位元內是否有一錯誤位元之一第二校正子;及基於該第一校正子及該第二校正子之至少一者而判定該資料包含一錯誤位元;其中該第二校正子係獨立於該第一校正子之一結果而運算。
  9. 如請求項8之方法,其中該方法包含:當自一記憶體胞元陣列讀取該資料時,運算一交叉位元同位校正子;基於在一反覆產品碼解碼操作期間校正之錯誤來更新該交叉位元同位校正子;及判定在該反覆產品碼解碼操作期間一特定行碼字及一特定列碼字各具有非零校正子。
  10. 如請求項8或9之方法,其中該方法包含:基於該交叉位元同位校正子中之若干非零位元來更新與該特定行碼字及該特定列碼字之一相交點相關聯之該交叉位元資料。
  11. 一種設備,其包括:一記憶體裝置;一控制器,其耦合至該記憶體裝置,該控制器經組態以:使用一第一編碼器來編碼資料;基於定位於使用該第一編碼器所產生之行碼字及列碼字之相交點處之交叉位元來產生交叉位元同位資料;及使用一第二編碼器來編碼該資料以產生按區塊串接之行碼字及列碼字;藉由下述操作而在該編碼資料上執行一錯誤校正碼(ECC)操作:運算指示該資料之位元內是否有一錯誤位元之一第一校正子;運算指示該資料之交叉位元內是否有一錯誤位元之一第二校正子;及基於該第一校正子及該第二校正子之至少一者而判定該資料包含一錯誤位元;其中該第二校正子係獨立於該第一校正子之一結果而運算。
  12. 如請求項11之設備,其中藉由對定位於該等按區塊串接之行碼字及列碼字之該等相交點處之該等交叉位元之各者執行一「互斥或」運算來產生交叉位元同位資料。
  13. 如請求項11之設備,其中該第一編碼器及該第二編碼器係BCH編碼器。
  14. 如請求項11至13中任一項之設備,其中該編碼資料包含使用者資料、行碼字同位資料、列碼字同位資料、第一編碼器同位資料及交叉同位資料。
  15. 如請求項11至13中任一項之設備,其中該控制器經組態以使用該交叉位元同位資料來校正該資料中之一錯誤,其中該資料中之該錯誤定位於該等按區塊串接之行碼字及列碼字之一特定相交點處。
  16. 如請求項11至13中任一項之設備,其中該控制器經組態以基於在一反覆產品碼解碼操作期間一特定行碼字及一特定列碼字具有一非零校正子來使用該交叉位元同位資料校正該資料中之一錯誤。
  17. 一種設備,其包括:一記憶體裝置;一控制器,其耦合至該記憶體裝置,該控制器經組態以:使用用於交叉位元之同位資料來校正資料中之一錯誤,其中該資料中之該錯誤定位於行碼字及列碼字之一特定相交點處;其中該控制器經組態以使用用於交叉位元之該同位資料來校正該資料中之該錯誤包括該控制器經組態以:運算指示該資料之位元內是否有一錯誤位元之一第一校正子;運算指示該資料之該等交叉位元內是否有一錯誤位元之一第二校正子,其中該第二校正子係獨立於該第一校正子之一結果而運算;及基於該第一校正子及該第二校正子之至少一者而判定該資料包含一錯誤位元。
  18. 如請求項17之設備,其中該控制器經組態以在自一記憶體胞元陣列讀取該資料時運算該第一校正子及該第二校正子。
  19. 如請求項17之設備,其中:該資料對應於該等交叉位元;及該控制器經組態以基於在一反覆產品碼解碼操作期間校正之錯誤來更新該等交叉位元。
  20. 如請求項17之設備,其中該控制器經組態以判定在該反覆產品碼解碼操作期間一特定行碼字及一特定列碼字具有一非零校正子。
  21. 如請求項20之設備,其中該控制器經組態以回應於判定該特定行碼字及該特定列碼字具有該非零校正子而基於在該反覆產品碼解碼操作期間校正之錯誤來更新該第二校正子。
  22. 如請求項17之設備,其中該控制器經組態以基於該第二校正子中之若干非零位元來更新與該特定行碼字及該特定列碼字之一相交點相關聯之該資料。
  23. 如請求項17之設備,其中該控制器經組態以對該第二校正子及與該特定行碼字及該特定列碼字之一相交點相關聯之該資料執行一「互斥或」運算。
TW107108956A 2017-03-17 2018-03-16 用於提供冗餘錯誤校正之記憶體中之錯誤校正碼操作 TWI671749B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/461,623 US10312944B2 (en) 2017-03-17 2017-03-17 Error correction code (ECC) operations in memory for providing redundant error correction
US15/461,623 2017-03-17

Publications (2)

Publication Number Publication Date
TW201842510A TW201842510A (zh) 2018-12-01
TWI671749B true TWI671749B (zh) 2019-09-11

Family

ID=63519626

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107108956A TWI671749B (zh) 2017-03-17 2018-03-16 用於提供冗餘錯誤校正之記憶體中之錯誤校正碼操作

Country Status (4)

Country Link
US (3) US10312944B2 (zh)
CN (1) CN110462593B (zh)
TW (1) TWI671749B (zh)
WO (1) WO2018169831A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831596B2 (en) * 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
US11068342B1 (en) * 2020-06-01 2021-07-20 Western Digital Technologies, Inc. Redundancy data in integrated memory assembly
US11868210B2 (en) * 2021-12-16 2024-01-09 Micron Technology, Inc. Memory device crossed matrix parity

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010050622A1 (en) * 2000-03-14 2001-12-13 Hewitt Eric John Enhanced turbo product codes
US20150155888A1 (en) * 2013-11-29 2015-06-04 Korea Advanced Institute Of Science And Technology Concatenated error correction device
US20160164543A1 (en) * 2014-12-08 2016-06-09 Sk Hynix Memory Solutions Inc. Turbo product codes for nand flash
US20160336969A1 (en) * 2015-05-15 2016-11-17 Sk Hynix Memory Solutions Inc. Miscorrection avoidance for turbo product codes
US20170004036A1 (en) * 2015-06-30 2017-01-05 SK Hynix Inc. Flash memory system and operating method thereof
US20170004038A1 (en) * 2013-09-26 2017-01-05 Seagate Technology Llc Systems and methods for enhanced data recovery in a solid state memory system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4958350A (en) * 1988-03-02 1990-09-18 Stardent Computer, Inc. Error detecting/correction code and apparatus
CA2447204C (en) 2002-11-29 2010-03-23 Memory Management Services Ltd. Error correction scheme for memory
KR100856129B1 (ko) * 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
JP2009070509A (ja) 2007-09-14 2009-04-02 Oki Electric Ind Co Ltd 半導体記憶装置
US8327242B1 (en) * 2008-04-10 2012-12-04 Apple Inc. High-performance ECC decoder
CN101814922B (zh) 2009-02-23 2013-06-19 国际商业机器公司 基于bch码的多位错纠错方法和装置以及存储系统
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
CN102236585B (zh) * 2010-04-20 2015-06-03 慧荣科技股份有限公司 提升错误更正能力的方法以及相关的记忆装置及其控制器
US9166626B2 (en) 2011-11-18 2015-10-20 Korea Advanced Institute Of Science And Technology Encoding, decoding, and multi-stage decoding circuits for concatenated BCH, and error correction circuit of flash memory device using the same
US9116822B2 (en) * 2012-12-07 2015-08-25 Micron Technology, Inc. Stopping criteria for layered iterative error correction
US9124300B2 (en) * 2013-02-28 2015-09-01 Sandisk Technologies Inc. Error correction coding in non-volatile memory
US9430324B2 (en) 2013-05-24 2016-08-30 Rambus Inc. Memory repair method and apparatus based on error code tracking
US9419655B2 (en) 2014-04-04 2016-08-16 Seagate Technology Llc Error correction code (ECC) selection using probability density functions of error correction capability in storage controllers with multiple error correction codes
EP3249083B1 (en) * 2015-01-23 2019-01-02 Zhengzhou Zhongyuan Spandex Engineering Technology Elastic fibre dry spinning mechanism and maintenance control method for spinning assembly
US20160226526A1 (en) * 2015-02-02 2016-08-04 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and Methods for Soft Data Based Cross Codeword Error Correction
RU2682843C1 (ru) * 2015-03-10 2019-03-21 Тосиба Мемори Корпорейшн Устройство памяти и система памяти
US10552048B2 (en) 2015-05-12 2020-02-04 SK Hynix Inc. Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks
US10120753B2 (en) * 2015-05-26 2018-11-06 Micron Technology, Inc. Methods and apparatuses for error correction
KR20170004693A (ko) 2015-07-03 2017-01-11 에스케이하이닉스 주식회사 메모리 장치의 컨트롤러 및 그 동작 방법
TWI566091B (zh) 2015-09-10 2017-01-11 慧榮科技股份有限公司 用來對一錯誤更正碼進行解碼之方法與解碼電路
US20180167088A1 (en) * 2016-12-09 2018-06-14 Futurewei Technologies, Inc. Error-Correcting Code Method and System with Hybrid Block Product Codes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010050622A1 (en) * 2000-03-14 2001-12-13 Hewitt Eric John Enhanced turbo product codes
US20170004038A1 (en) * 2013-09-26 2017-01-05 Seagate Technology Llc Systems and methods for enhanced data recovery in a solid state memory system
US20150155888A1 (en) * 2013-11-29 2015-06-04 Korea Advanced Institute Of Science And Technology Concatenated error correction device
US20160164543A1 (en) * 2014-12-08 2016-06-09 Sk Hynix Memory Solutions Inc. Turbo product codes for nand flash
US20160336969A1 (en) * 2015-05-15 2016-11-17 Sk Hynix Memory Solutions Inc. Miscorrection avoidance for turbo product codes
US20170004036A1 (en) * 2015-06-30 2017-01-05 SK Hynix Inc. Flash memory system and operating method thereof

Also Published As

Publication number Publication date
CN110462593B (zh) 2024-03-26
US10312944B2 (en) 2019-06-04
US20180269904A1 (en) 2018-09-20
US11431355B2 (en) 2022-08-30
US20210143842A1 (en) 2021-05-13
US10903860B2 (en) 2021-01-26
CN110462593A (zh) 2019-11-15
TW201842510A (zh) 2018-12-01
US20190288711A1 (en) 2019-09-19
WO2018169831A1 (en) 2018-09-20

Similar Documents

Publication Publication Date Title
KR102179228B1 (ko) 메모리에서의 티어드 오류 정정 코드(ecc) 동작
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
JP6110953B2 (ja) 階層化反復誤り訂正のための停止基準
JP6181257B2 (ja) 誤り訂正符号の編成を含む装置および方法
US11431355B2 (en) Error correction code (ECC) operations in memory for providing redundant error correction
US8812942B2 (en) Interleaving apparatuses and memory controllers having the same
CN113064547B (zh) 有局部顺序信息的校验矩阵的保护的数据存取方法及设备
US10120753B2 (en) Methods and apparatuses for error correction
TWI682399B (zh) 操作記憶體之方法及用於錯誤率降低之設備
US10855316B2 (en) Error correction code (ECC) operations in memory
CN112084052A (zh) 基于主机的错误校正
CN115016980A (zh) 存储器控制器及操作存储器控制器的方法