TWI550628B - 解碼方法、記憶體儲存裝置及記憶體控制電路單元 - Google Patents

解碼方法、記憶體儲存裝置及記憶體控制電路單元 Download PDF

Info

Publication number
TWI550628B
TWI550628B TW103124424A TW103124424A TWI550628B TW I550628 B TWI550628 B TW I550628B TW 103124424 A TW103124424 A TW 103124424A TW 103124424 A TW103124424 A TW 103124424A TW I550628 B TWI550628 B TW I550628B
Authority
TW
Taiwan
Prior art keywords
circuit
clock signal
memory
control parameter
iterative decoding
Prior art date
Application number
TW103124424A
Other languages
English (en)
Other versions
TW201604882A (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 群聯電子股份有限公司
Priority to TW103124424A priority Critical patent/TWI550628B/zh
Priority to US14/477,867 priority patent/US10193569B2/en
Publication of TW201604882A publication Critical patent/TW201604882A/zh
Application granted granted Critical
Publication of TWI550628B publication Critical patent/TWI550628B/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/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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] 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/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative 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/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation

Description

解碼方法、記憶體儲存裝置及記憶體控制電路單元
本發明是有關於一種解碼方法,且特別是有關於一種解碼方法、記憶體儲存裝置及記憶體控制電路單元。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體模組(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
一般來說,錯誤檢查與校正電路會被設置在記憶體儲存裝置中。用來驅動錯誤檢查與校正電路的時脈訊號的頻率是固定的,甚至是相當高的,以避免因解碼速度太低而影響到系統效能。然而,對於吞吐率(throughput)有限的記憶體儲存裝置來說,提供頻率很高的時脈訊號給錯誤檢查與校正電路會導致電力的浪費,卻可能無助於記憶體儲存裝置整體的資料存取速度。
本發明提供一種解碼方法、記憶體儲存裝置及記憶體控制電路單元,可根據過去的迭代次數來動態地調整負責迭代解碼的更正電路當前的時脈訊號的頻率。
本發明的一範例實施例提供一種解碼方法,其用於記憶體控制電路單元。所述解碼方法包括:由更正電路根據第一時脈訊號對第一碼字執行低密度奇偶檢查校正碼(low density parity code,LDPC)的至少一第一迭代解碼程序;根據所述第一迭代解碼程序的第一迭代次數產生控制參數;根據所述控制參數輸出第二時脈訊號至所述更正電路;以及由所述更正電路根據所述第二時脈訊號對第二碼字執行所述低密度奇偶檢查校正碼的至少一第二迭代解碼程序。
在本發明的一範例實施例中,所述的解碼方法更包括:由更正電路根據第三時脈訊號對第三碼字執行低密度奇偶檢查校正碼的至少一第三迭代解碼程序,其中根據所述第一迭代解碼程序的第一迭代次數產生控制參數的步驟包括:計算所述第一迭代解碼程序的第一迭代次數與所述第三迭代解碼程序的第三迭代次數的平均值;以及根據平均值產生控制參數。
在本發明的一範例實施例中,所述的控制參數包括第一控制參數與第二控制參數,而根據平均值產生控制參數的步驟包括:判斷平均值是否超過第一門檻值或低於第二門檻值,其中第 一門檻值等於或高於第二門檻值;若平均值超過第一門檻值,輸出第一控制參數,其中第一控制參數指示將第一時脈訊號的第一頻率增加至第二時脈訊號的第二頻率;以及若平均值低於第二門檻值,輸出第二控制參數,其中第二控制參數指示將第一時脈訊號的第一頻率減少至第二時脈訊號的第二頻率。
在本發明的一範例實施例中,所述的根據所述第一迭代解碼程序的第一迭代次數產生控制參數的步驟包括:將所述第一迭代解碼程序的第一迭代次數輸入至均值濾波器電路或無限脈衝響應濾波器。
在本發明的一範例實施例中,所述的解碼方法更包括:輸出第四時脈訊號至檢查電路;以及由檢查電路根據第四時脈訊號輸出對應於第二碼字的至少一校驗子。
在本發明的一範例實施例中,所述的解碼方法更包括:輸出第五時脈訊號至加法電路;以及由加法電路根據第五時脈訊號與更正電路所輸出的錯誤索引資訊來更正第二碼字。
本發明的一範例實施例提供一種記憶體儲存裝置,其包括連接介面單元、可複寫式非揮發性記憶體模組及記憶體控制電路單元。連接介面單元用以耦接至主機系統。可複寫式非揮發性記憶體模組包括多個實體抹除單元。記憶體控制電路單元耦接至連接介面單元與可複寫式非揮發性記憶體模組。其中記憶體控制電路單元用以控制更正電路根據第一時脈訊號對第一碼字執行低密度奇偶檢查校正碼的至少一第一迭代解碼程序,記憶體控制電 路單元更用以根據所述第一迭代解碼程序的第一迭代次數產生控制參數。記憶體控制電路單元更用以根據控制參數輸出第二時脈訊號至更正電路。記憶體控制電路單元更用以控制更正電路根據第二時脈訊號對第二碼字執行低密度奇偶檢查校正碼的至少一第二迭代解碼程序。
在本發明的一範例實施例中,所述的記憶體控制電路單元更用以控制更正電路根據第三時脈訊號對第三碼字執行低密度奇偶檢查校正碼的至少一第三迭代解碼程序,其中記憶體控制電路單元根據所述第一迭代解碼程序的第一迭代次數產生控制參數的操作包括:計算所述第一迭代解碼程序的第一迭代次數與所述第三迭代解碼程序的第三迭代次數的平均值;以及根據平均值產生控制參數。
在本發明的一範例實施例中,所述的控制參數包括第一控制參數與第二控制參數,而記憶體控制電路單元根據平均值產生控制參數的操作包括:判斷平均值是否超過第一門檻值或低於第二門檻值,其中第一門檻值等於或高於第二門檻值;若平均值超過第一門檻值,輸出第一控制參數,其中第一控制參數指示將第一時脈訊號的第一頻率增加至第二時脈訊號的第二頻率;以及若平均值低於第二門檻值,輸出第二控制參數,其中第二控制參數指示將第一時脈訊號的第一頻率減少至第二時脈訊號的第二頻率。
在本發明的一範例實施例中,所述的記憶體控制電路單 元根據所述第一迭代解碼程序的第一迭代次數產生控制參數的操作包括:將所述第一迭代解碼程序的第一迭代次數輸入至均值濾波器電路或無限脈衝響應濾波器。
在本發明的一範例實施例中,所述的記憶體控制電路單元更用以輸出第四時脈訊號至檢查電路,並且控制檢查電路根據第四時脈訊號輸出對應於第二碼字的至少一校驗子。
在本發明的一範例實施例中,所述的記憶體控制電路單元更用以輸出第五時脈訊號至加法電路,並且控制加法電路根據第五時脈訊號與更正電路所輸出的錯誤索引資訊來更正第二碼字。
本發明的一範例實施例提供一種記憶體控制電路單元,其用於控制可複寫式非揮發性記憶體模組,其中可複寫式非揮發性記憶體模組包括多個實體抹除單元,記憶體控制電路單元包括主機介面、記憶體介面、記憶體管理電路、錯誤檢查與校正電路及時脈訊號輸出電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。錯誤檢查與校正電路耦接至記憶體管理電路,並且包括更正電路。更正電路用以根據第一時脈訊號對第一碼字執行低密度奇偶檢查校正碼的至少一第一迭代解碼程序。時脈訊號輸出電路耦接至錯誤檢查與校正電路,並且用以輸出第一時脈訊號至更正電路。其中時脈訊號輸出電路更用以根據所述第一迭代解碼程序的第一迭代次數產生控制參數。時脈訊號 輸出電路更用以根據控制參數輸出第二時脈訊號至更正電路。更正電路更用以根據第二時脈訊號對第二碼字執行低密度奇偶檢查校正碼的至少一第二迭代解碼程序。
在本發明的一範例實施例中,所述的時脈訊號輸出電路更用以輸出第三時脈訊號至更正電路。更正電路更用以根據第三時脈訊號對第三碼字執行低密度奇偶檢查校正碼的至少一第三迭代解碼程序,其中時脈訊號輸出電路根據所述第一迭代解碼程序的第一迭代次數產生控制參數的操作包括:計算所述第一迭代解碼程序的第一迭代次數與所述第三迭代解碼程序的第三迭代次數的平均值;以及根據平均值產生控制參數。
在本發明的一範例實施例中,所述的控制參數包括第一控制參數與第二控制參數,而時脈訊號輸出電路根據平均值產生控制參數的操作包括:判斷平均值是否超過第一門檻值或低於第二門檻值,其中第一門檻值等於或高於第二門檻值;若平均值超過第一門檻值,輸出第一控制參數,其中第一控制參數指示將第一時脈訊號的第一頻率增加至第二時脈訊號的第二頻率;以及若平均值低於第二門檻值,輸出第二控制參數,其中第二控制參數指示將第一時脈訊號的第一頻率減少至第二時脈訊號的第二頻率。
在本發明的一範例實施例中,所述的時脈訊號輸出電路根據所述第一迭代解碼程序的第一迭代次數產生控制參數的操作包括:將所述第一迭代解碼程序的第一迭代次數輸入至均值濾波 器電路或無限脈衝響應濾波器。
在本發明的一範例實施例中,所述的錯誤檢查與校正電路更包括檢查電路。時脈訊號輸出電路更用以輸出第四時脈訊號至檢查電路。檢查電路用以根據第四時脈訊號輸出對應於第二碼字的至少一校驗子。
在本發明的一範例實施例中,所述的錯誤檢查與校正電路更包括加法電路。時脈訊號輸出電路更用以輸出第五時脈訊號至加法電路。加法電路用以根據第五時脈訊號與更正電路所輸出的錯誤索引資訊來更正第二碼字。
基於上述,本發明的一範例實施例可根據執行過的迭代解碼程序的迭代次數,來動態地調整負責迭代解碼的更正電路當前的時脈訊號的頻率。藉此,可降低用於解碼的耗電量,並且可有效維持解碼效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接介面單元
104‧‧‧記憶體控制電路單元
106‧‧‧可複寫式非揮發性記憶體模組
2202‧‧‧記憶胞陣列
2204‧‧‧字元線控制電路
2206‧‧‧位元線控制電路
2208‧‧‧行解碼器
2210‧‧‧資料輸入/輸出緩衝器
2212‧‧‧控制電路
702‧‧‧記憶胞
704‧‧‧位元線
706‧‧‧字元線
708‧‧‧源極線
712‧‧‧選擇閘汲極電晶體
714‧‧‧選擇閘源極電晶體
SGS‧‧‧選擇閘源極
SGD‧‧‧選擇閘汲極
LSB‧‧‧最低有效位元
CSB‧‧‧中間有效位元
MSB‧‧‧最高有效位元
VA、VB、VC、VD、VE、VF、VG、V1~V5‧‧‧讀取電壓
400(0)~400(N)‧‧‧實體抹除單元
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧錯誤檢查與校正電路
210‧‧‧緩衝記憶體
212‧‧‧電源管理電路
214‧‧‧時脈訊號輸出電路
1330‧‧‧二分圖
1332(1)~1332(k)‧‧‧奇偶節點
1334(1)~1334(n)‧‧‧訊息節點
L1~Ln‧‧‧通道可靠度資訊
L ij L ji ‧‧‧可靠度資訊
1510、1520‧‧‧儲存狀態
1501~1506‧‧‧區間
b1~b5‧‧‧驗証位元
1401、1404、1409‧‧‧緩衝電路
1402‧‧‧擾亂電路
1403‧‧‧編碼電路
1405‧‧‧檢查電路
1406‧‧‧更正電路
1407‧‧‧解擾亂電路
1408‧‧‧加法電路
1410‧‧‧XOR電路
DATA_1、DATA_2‧‧‧資料
CW_1、CW_2‧‧‧碼字
1501‧‧‧時脈訊號產生電路
1502~1506‧‧‧除頻電路
1507‧‧‧時脈控制電路
CS_1~CS_7‧‧‧時脈訊號
S1602、S1604、S1606、S1608‧‧‧步驟
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。
圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
圖5是根據一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。
圖6是根據一範例實施例所繪示的記憶胞陣列的示意圖。
圖7是根據一範例實施例所繪示儲存於記憶胞陣列中的寫入資料所對應的閘極電壓的統計分配圖。
圖8是根據一範例實施例所繪示的從記憶胞中讀取資料的示意圖。
圖9是根據另一範例實施例所繪示的從記憶胞中讀取資料的示意圖。
圖10是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
圖11是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
圖12是根據一範例實施例繪示奇偶檢查矩陣的示意圖。
圖13是根據一範例實施例繪示讀取驗證位元的示意圖。
圖14是根據一範例實施例繪示的錯誤檢查與校正電路的的概要方塊圖。
圖15是根據一範例實施例繪示的時脈訊號輸出電路的的概要方塊圖。
圖16是根據一範例實施例繪示的解碼方法的流程圖。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統與記憶體儲存裝置。圖2是根據一範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
請參照圖1,主機系統1000一般包括電腦1100與輸入/輸出(input/output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(random access memory,RAM)1104、系統匯流排1108與資料傳輸介面1110。輸入/輸出裝置1106包括如圖2的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖2所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104與輸入/輸出裝置1106的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖2所示的隨身碟1212、 記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
圖3是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
一般而言,主機系統1000為可實質地與記憶體儲存裝置100配合以儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖3所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖4是繪示圖1所示的記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置100包括連接介面單元102、記憶體控制電路單元104與可複寫式非揮發性記憶體模組106。
在本範例實施例中,連接介面單元102是相容於序列先進附件(Serial Advanced Technology Attachment,SATA)標準。然而,必須瞭解的是,本發明不限於此,連接介面單元102亦可以是符合並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、通用序列匯流排(Universal Serial Bus,USB)標準、安全數位(Secure Digital,SD)介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick,MS)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、崁入式多媒體儲存卡(Embedded Multimedia Card,eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、小型快閃(Compact Flash,CF)介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。連接介面單元102可與記憶體控制電路單元104封裝在一個晶片中,或者連接介面單元102是佈設於一包含記憶體控制電路單元104之晶片外。
記憶體控制電路單元104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。在一範例實施例中,當記憶體控制電路單元104是發出寫入指令序列、讀取指令序列與抹除指令序列來完成上述寫入、讀取與抹除等運作。每一個指令序列中可包括一或多個訊號、辨識碼、資料、或其組合,本發明並不限制指令序列的內容。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制 電路單元104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元資料的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元資料的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖5是根據一範例實施例所繪示的可複寫式非揮發性記憶體模組的概要方塊圖。圖6是根據一範例實施例所繪示的記憶胞陣列的示意圖。
請參照圖5,可複寫式非揮發性記憶體模組106包括記憶胞陣列2202、字元線控制電路2204、位元線控制電路2206、行解碼器(column decoder)2208、資料輸入/輸出緩衝器2210與控制電路2212。
在本範例實施例中,記憶胞陣列2202可包括用以儲存資料的多個記憶胞702、多個選擇閘汲極(select gate drain,SGD)電晶體712與多個選擇閘源極(select gate source,SGS)電晶體714、以及連接此些記憶胞的多條位元線704、多條字元線706、與共用源極線708(如圖6所示)。記憶胞702是以陣列方式(或立體堆疊的方式)配置在位元線704與字元線706的交叉點上。當從記憶體控制電路單元104接收到寫入指令或讀取指令時,控制電路2212會控 制字元線控制電路2204、位元線控制電路2206、行解碼器2208、資料輸入/輸出緩衝器2210來寫入資料至記憶胞陣列2202或從記憶胞陣列2202中讀取資料,其中字元線控制電路2204用以控制施予至字元線706的電壓,位元線控制電路2206用以控制施予至位元線704的電壓,行解碼器2208依據指令中的列位址以選擇對應的位元線,並且資料輸入/輸出緩衝器2210用以暫存資料。
可複寫式非揮發性記憶體模組106中的記憶胞是以臨界電壓的改變來儲存多位元(bits)。具體來說,每一個記憶胞的控制閘極(control gate)與通道之間有一個電荷捕捉層。透過施予一寫入電壓至控制閘極,可以改變電荷補捉層的電子量,因而改變了記憶胞的臨界電壓。此改變臨界電壓的程序亦稱為”把資料寫入至記憶胞”或”程式化記憶胞”。隨著臨界電壓的改變,記憶胞陣列2202的每一記憶胞具有多個儲存狀態。並且透過讀取電壓可以判斷記憶胞是屬於哪一個儲存狀態,藉此取得記憶胞所儲存的位元。
圖7是根據一範例實施例所繪示儲存於記憶胞陣列中的寫入資料所對應的閘極電壓的統計分配圖。
請參照圖7,以MLC NAND型快閃記憶體為例,隨著不同的臨界電壓,每一記憶胞具有4種儲存狀態,並且此些儲存狀態分別地代表"11"、"10"、"00"與"01"等位元。換言之,每一個儲存狀態包括最低有效位元(Least Significant Bit,LSB)以及最高有效位元(Most Significant Bit,MSB)。在本範例實施例中,儲存狀態(即,"11"、"10"、"00"與"01")中從左側算起之第1個位元為LSB, 而從左側算起之第2個位元為MSB。因此,在此範例實施例中,每一記憶胞可儲存2個位元。必須瞭解的是,圖7所繪示的臨界電壓及其儲存狀態的對應僅為一個範例。在本發明另一範例實施例中,臨界電壓與儲存狀態的對應亦可是隨著臨界電壓越大而以"11"、"10"、"01"與"00"排列,或是其他排列。此外,在另一範例實施例中,亦可定義從左側算起之第1個位元為MSB,而從左側算起之第2個位元為LSB。
圖8是根據一範例實施例所繪示的從記憶胞中讀取資料的示意圖,其是以MLC NAND型快閃記憶體為例。
請參照圖8,記憶胞陣列2202之記憶胞的讀取運作是藉由施予讀取電壓於控制閘極,藉由記憶胞通道的導通狀態,來識別記憶胞儲存之資料。驗證位元(VA)是用以指示施予讀取電壓VA時記憶胞通道是否為導通;驗證位元(VC)是用以指示施予讀取電壓VC時,記憶胞通道是否為導通;驗證位元(VB)是用以指示施予讀取電壓VB時,記憶胞通道是否為導通。在此假設驗證位元是”1”時表示對應的記憶胞通道導通,而驗證位元是”0”時表示對應的記憶胞通道沒有導通。如圖8所示,透過驗證位元(VA)~(VC)可以判斷記憶胞是處於哪一個儲存狀態,進而取得所儲存的位元。
圖9是根據另一範例實施例所繪示的從記憶胞中讀取資料的示意圖。
請參照圖9,以一TLC NAND型快閃記憶體為例,每一個儲存狀態包括左側算起之第1個位元的最低有效位元LSB、從 左側算起之第2個位元的中間有效位元(Center Significant Bit,CSB)以及從左側算起之第3個位元的最高有效位元MSB。在此範例中,依照不同的臨界電壓,記憶胞具有8種儲存狀態(即,"111"、"110"、"100"、"101"、"001"、"000"、"010"與"011")。藉由施加讀取電壓VA~VG於控制閘極,可以識別記憶胞所儲存的位元。其中,值得說明的是,此8種儲存狀態之排列順序,可依製造商之設計而訂,非以本範例之排列方式為限。
圖10是根據一範例實施例所繪示之管理可複寫式非揮發性記憶體模組的示意圖。
請參照圖10,可複寫式非揮發性記憶體模組106的記憶胞702會構成多個實體程式化單元,並且此些實體程式化單元會構成多個實體抹除單元400(0)~400(N)。具體來說,同一條字元線上的記憶胞會組成一或多個實體程式化單元。若每一個記憶胞可儲存2個以上的位元,則同一條字元線上的實體程式化單元可被分類為下實體程式化單元與上實體程式化單元。例如,每一記憶胞的LSB是屬於下實體程式化單元,並且每一記憶胞的MSB是屬於上實體程式化單元。一般來說,在MLC NAND型快閃記憶體中,下實體程式化單元的寫入速度會大於上實體程式化單元的寫入速度,或下實體程式化單元的可靠度是高於上實體程式化單元的可靠度。在此範例實施例中,實體程式化單元為程式化的最小單元。即,實體程式化單元為寫入資料的最小單元。例如,實體程式化單元為實體頁面或是實體扇(sector)。若實體程式化單元為 實體頁面,則每一個實體程式化單元通常包括資料位元區與冗餘位元區。資料位元區包含多個實體扇,用以儲存使用者的資料,而冗餘位元區用以儲存系統的資料(例如,錯誤更正碼)。在本範例實施例中,每一個資料位元區包含32個實體扇,且一個實體扇的大小為512位元組(byte,B)。然而,在其他範例實施例中,資料位元區中也可包含8個、16個或數目更多或更少的實體扇,本發明並不限制實體扇的大小以及個數。另一方面,實體抹除單元為抹除之最小單位。亦即,每一實體抹除單元含有最小數目之一併被抹除之記憶胞。例如,實體抹除單元為實體區塊。
圖11是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。必須瞭解的是,圖11所示之記憶體控制電路單元的結構僅為一範例,本發明不以此為限。
請參照圖11,記憶體控制電路單元104包括記憶體管理電路202、主機介面204、記憶體介面206與錯誤檢查與校正電路208。
記憶體管理電路202用以控制記憶體控制電路單元104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。以下說明記憶體管理電路202的操作時,等同於說明記憶體控制電路單元104的操作,以下並不再贅述。
在本範例實施例中,記憶體管理電路202的控制指令是 以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組106的實體區塊;記憶體寫入電路用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複 寫式非揮發性記憶體模組106中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、SD標準、UHS-I標準、UHS-II標準、MS標準、MMC標準、eMMC標準、UFS標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。具體來說,若記憶體管理電路202要存取可複寫式非揮發性記憶體模組106時,記憶體介面206會傳送對應的指令序列。這些指令序列可包 括一或多個訊號,或是在匯流排上的資料。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
錯誤檢查與校正電路208是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路208會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC code)或錯誤檢查碼(error detecting code,EDC),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤更正碼或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤更正碼或錯誤檢查碼,並且錯誤檢查與校正電路208會依據此錯誤更正碼或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。在此範例實施例中,錯誤檢查與校正電路208所使用的是低密度奇偶檢查校正碼(low density parity code,LDPC)。
在一範例實施例中,記憶體控制電路單元104還包括緩衝記憶體210與電源管理電路212。
緩衝記憶體210是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路212是耦接至記憶體管理電路202並且用 以控制記憶體儲存裝置100的電源。
在低密度奇偶檢查校正碼中,是用一個奇偶檢查矩陣來定義有效的碼字。以下將奇偶檢查矩陣標記為矩陣H,並且一碼字標記為CW。依照以下方程式(1),若奇偶檢查矩陣H與碼字CW的相乘是零向量,表示碼字CW為有效的碼字。其中運算子表示模2(mod 2)的矩陣相乘。換言之,矩陣H的零空間(null space)便包含了所有的有效碼字。然而,本發明並不限制碼字CW的內容。例如,碼字CW也可以包括用任意演算法所產生的錯誤更正碼或是錯誤檢查碼。
其中矩陣H的維度是k-乘-n(k-by-n),碼字CW的維度是1-乘-nkn為正整數。碼字CW中包括了訊息位元與奇偶位元,即碼字CW可以表示成[M P],其中向量M是由訊息位元所組成,向量P是由奇偶位元所組成。向量M的維度是1-乘-(n-k),而向量P的維度是1-乘-k。以下將訊息位元與奇偶位元統稱為資料位元。換言之,碼字CW中具有n個資料位元,其中訊息位元的長度為(n-k)位元,並且奇偶位元的長度是k位元,即碼字CW的碼率(code rate)為(n-k)/n
一般來說在編碼時會使用一個產生矩陣(以下標記為G),使得對於任意的向量M都可滿足以下方程式(2)。其中產生矩陣G的維度是(n-k)-乘-n
由方程式(2)所產生的碼字CW為有效的碼字。因此可將方程式(2)代入方程式(1),藉此得到以下方程式(3)。
由於向量M可以是任意的向量,因此以下方程式(4)必定會滿足。也就是說,在決定奇偶檢查矩陣H以後,對應的產生矩陣G也可被決定。
在解碼一個碼字CW時,會先對碼字中的資料位元執行一個奇偶檢查程序,例如將奇偶檢查矩陣H與碼字CW相乘以產生一個向量(以下標記為S,如以下方程式(5)所示)。若向量S是零向量,則可直接輸出碼字CW。若向量S不是零向量,則表示碼字CW不是有效的碼字。
向量S的維度是k-乘-1,其中每一個元素亦稱為校驗子(syndrome)。若碼字CW不是有效的碼字,則錯誤檢查與校正電路208會執行一個解碼程序,以嘗試更正碼字CW中的錯誤位元。
圖12是根據一範例實施例繪示奇偶檢查矩陣的示意圖。
請參照圖12,一般來說,奇耦檢查矩陣H可以表示為二分圖(bipartite graph)1330,其中包括奇偶節點1332(1)~1332(k)與訊息節點1334(1)~1334(n)。每一個奇偶節點1332(1)~1332(k)是對應到一個校驗子,而每一個訊息節點1334(1)~1334(n)是對應一個資料位元。資料位元與校驗子之間的對應關係(即,訊息節點 1334(1)~1334(n)與奇偶節點1332(1)~1332(k)之間的連結關係)是根據奇偶檢查矩陣所產生。具體來說,若奇耦檢查矩陣中第i列第j行的元素為1,則第i個奇偶節點1332(i)便會連接到第j個訊息節點1334(j),其中ij為正整數。
當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取n個資料位元(形成一個碼字)時,則記憶體管理電路202也會取得每一個資料位元的一通道可靠度資訊。此通道可靠度資訊是用以表示對應的資料位元被解碼為位元”1”或是”0”的機率(或稱信心度),以下再詳細說明。在二分圖1330中,訊息節點1334(1)~1334(n)也會接收到對應的通道可靠度資訊。例如,訊息節點1332(1)會接收第1個資料位元的通道可靠度資訊L 1 ,而訊息節點1332(j)會接收第j個資料位元的通道可靠度資訊L j
錯誤檢查與校正電路208會根據二分圖1330的結構與通道可靠度資訊L 1 ~L n 來執行解碼程序。此解碼程序會包括迭代解碼。具體來說,在迭代解碼中,訊息節點1334(1)~1334(n)會計算出可靠度資訊給奇偶節點1332(1)~1332(k),並且奇偶節點1332(1)~1332(k)也會計算出可靠度資訊給訊息節點1334(1)~1334(n)。這些可靠度資訊會沿著這些二分圖1330中的邊(edge)來傳送。例如,奇偶節點1332(i)傳送給訊息節點1334(j)的是可靠度資訊L ij ,而訊息節點1334(j)傳送給奇偶節點1332(i)是可靠度資訊L ji 。這些可靠度資訊是用來表示一個節點認為某一個資料位元被解碼為”1”或是”0”的機率(亦稱為信心度)有多少。舉例 來說,可靠度資訊L ji 表示訊息節點1334(j)認為第j個資料位元被解碼為”1”或是”0”的信心度(可為正或是負),而可靠度資訊L ij 表示奇偶節點1332(i)認為第j個資料位元被解碼為”1”或是”0”的信心度。而訊息節點1334(1)~1334(n)與奇偶節點1332(1)~1332(k)會根據輸入的可靠度資訊來計算輸出的可靠度資訊,其近似於計算一個資料位元被解碼為”1”或是”0”的條件機率。因此,上述傳送可靠度資訊的過程又被稱為置信傳播(belief propagation)。
當採用不同的演算法,訊息節點1334(1)~1334(n)及/或奇偶節點1332(1)~1332(k)會計算出不同的可靠度資訊。例如,錯誤檢查與校正電路208可以採用總和-乘積演算法(Sum-Product Algorithm)、最小值-總和演算法(Min-Sum Algorithm)、或是位元翻轉(bit-flipping Algorithm),本發明並不限制採用何種演算法。
在迭代解碼的每一次迭代中,訊息節點1334(1)~1334(n)會傳遞可靠度資訊給奇偶節點1332(1)~1332(k),並且奇偶節點1332(1)~1332(k)會傳遞可靠度資訊給訊息節點1334(1)~1334(n)。在每一次迭代過後,訊息節點1334(1)~1334(n)會根據目前的可靠度資訊計算出每一個資料位元應該被解碼為位元”1”或是”0”。接下來對這些計算出的資料位元執行奇偶檢查程序,即將資料位元所形成的碼字與奇偶檢查矩陣相乘,藉此判斷該碼字是否為有效的碼字。若所產生的碼字為有效的碼字,則迭代解碼會停止。若所產生的碼字不是有效的碼字,則會進行下一次的迭代。若迭代解碼的迭代次數超過一個預設值,則迭代解碼也會停止,表示解碼 失敗。
圖13是根據一範例實施例繪示讀取驗證位元的示意圖。請參照圖13,在此假設屬於儲存狀態1510的記憶胞所儲存的是位元”1”,而屬於儲存狀態1520的記憶胞所儲存的是位元”0”。儲存狀態1510與儲存狀態1520有部份的重疊,亦即在某些讀取電壓,部份屬於儲存狀態1510的記憶胞會被判別為屬於儲存狀態1520,而部份屬於儲存狀態1520的記憶胞會被判別為屬於儲存狀態1510。在一範例實施例中,當施加讀取電壓於記憶胞的控制閘極以後,隨著記憶胞通道是否導通,記憶體管理電路202所取得的驗證位元會是”0”或是”1”。在此假設若記憶胞通道沒有導通時則對應的驗證位元是”0”,反之則是”1”。若記憶體管理電路202施加了讀取電壓V1~V5至某一記憶胞,則記憶體管理電路202會取得5個驗證位元。具體來說,讀取電壓V1是對應到驗證位元b1;讀取電壓V2是對應到驗證位元b2;讀取電壓V3是對應到驗證位元b3;讀取電壓V4是對應到驗證位元b4;讀取電壓V5是對應到驗證位元b5。若一個記憶胞的臨界電壓是在區間1501,則從驗證位元b1至驗證位元b5,記憶體管理電路202所取得的驗證位元會是”11111”;若記憶胞的臨界電壓是在區間1502,則驗證位元會是”01111”;若記憶胞的臨界電壓是在區間1503,則驗證位元會是”00111”;若記憶胞的臨界電壓是在區間1504,則驗證位元會是”00011”;若記憶胞的臨界電壓是在區間1505,則驗證位元會是”00001”;若記憶胞的臨界電壓是在區間1506,則驗證位元會 是”00000”。在另一範例實施例中,可複寫式非揮發性記憶體模組106也可以將對驗證位元b1~b5做運算以後,把運算後的驗證位元傳送給記憶體管理電路202。例如,驗證位元b2與b4會進行互斥或運算,而驗證位元b1與b5會進行互斥或運算。如此一來,記憶體管理電路202只會取得3個驗證位元。本發明並不限制驗證位元的個數與內容。
在此範例實施例中,讀取電壓V1~V5的其中之一會被設定為正負號(sign)讀取電壓。此正負號讀取電壓是用來決定資料位元為何。例如,若讀取電壓V3為正負號讀取電壓,則資料位元會相同於驗證位元b3;若讀取電壓V2為正負號讀取電壓,則資料位元會相同於驗證位元b2,以此類推。在每一個區間中,根據記憶胞屬於儲存狀態1510的機率與屬於儲存狀態1520的機率,可以計算出對數可能性比值(Log Likelihood Ratio,LLR),而在此範例實施例中此對數可能性比值亦被稱為資料位元的通道可靠度資訊。在一範例實施例中,各個區間所對應的對數可能性比值可以事先被計算出來並且儲存在一個查找表中。記憶體管理電路202可以將驗證位元b1~b5輸入此查找表中,藉此取得對應的對數可能性比值以作為通道可靠度資訊。所取得的通道可靠度資訊(即,圖12中的L1~Ln)便可以來執行上述的迭代解碼。在一範例實施例中,若設定不同的正負號讀取電壓,則會使用不同的查找表來取得通道可靠度資訊。
在上述的範例實施例中,若讀取電壓的個數為x個,則 可以分出x+1個區間,其中x為正整數。然而,在另一範例實施例中,若讀取電壓的個數為x個,則可以分出y個區間,其中y可為任意的正整數。本發明並不限制x個讀取電壓會產生幾個區間。若讀取電壓的個數為1(例如,僅使用讀取電壓V3),則所進行的解碼程序亦被稱為硬位元模式解碼程序。若讀取電壓的個數大於1,則所進行的解碼程序亦被稱為軟位元模式解碼程序。一般來說,軟位元模式解碼程序所使用的資訊較多,因此能更正較多的錯誤位元,但執行速度也比較慢。此外,在一範例實施例中,當進行硬位元模式解碼程序時,記憶體管理電路202可以直接根據所取得的驗證位元來計算出通道可靠度資訊,並不會透過查找表。例如,若驗證位元為”1”,則通道可靠度資訊可設定為z;若驗證位元為”0”,則通道可靠度資訊可設定為-z,其中z為實數。
圖14是根據一範例實施例繪示的錯誤檢查與校正電路的的概要方塊圖。必須瞭解的是,圖14所示之錯誤檢查與校正電路的結構僅為一範例,本發明不以此為限。
請參照圖14,在本範例實施例中,錯誤檢查與校正電路208包括緩衝電路1401、擾亂(converting)電路1402、編碼電路1403、緩衝電路1404、檢查電路1405、更正電路1406、解擾亂(de-converting)電路1407及加法電路1408。
緩衝電路1401耦接至主機介面204。當主機系統1000欲寫入資料DATA_1至可複寫式非揮發性記憶體模組106時,緩衝電路1401用以暫存資料DATA_1。擾亂電路1402耦接至緩衝電 路1401,並且用以擾亂儲存在緩衝電路1401中的資料DATA_1。編碼電路1403耦接至擾亂電路1402,並且用以將擾亂後的資料DATA_1進行編碼。在此,編碼電路1403是使用低密度奇偶檢查校正碼來編碼。然而,在另一範例實施例中,編碼電路1403也可以是使用迴旋碼(convolutional code)、渦輪碼(turbo code)或者任意的編碼演算法來編碼,本發明不加以限制。編碼電路1403會將編碼後的資料DATA_1(即,碼字CW_1)暫存至緩衝電路1404,並且碼字CW_1會被經由記憶體介面206傳輸至可複寫式非揮發性記憶體模組106。例如,編碼電路1403可根據上述方程式(2)來產生碼字CW_1。
當主機系統1000欲從可複寫式非揮發性記憶體模組106讀取資料時,多個驗證位元會被從可複寫式非揮發性記憶體模組106中讀取出來。記憶體管理電路202會根據此些驗證位元產生多個資料位元。例如,資料位元可根據正負號讀取電壓來決定。此些資料位元可組成碼字CW_2,並且被傳送至檢查電路1405。檢查電路1405用以產生對應於碼字CW_2的多個校驗子。具體而言,檢查電路1405會對碼字CW_2執行奇偶檢查程序以產生此些校驗子。例如,資料位元所形成的向量與奇偶檢查矩陣相乘可以得到多個校驗子。然而,正負號讀取電壓與奇偶檢查程序已說明如上,在此不再贅述。更正電路1406耦接至檢查電路1405,並且用以對碼字CW_2執行迭代解碼的解碼程序以產生錯誤索引資訊。例如,此錯誤索引資訊包括錯誤位元的索引。例如,更正電 路1406可以對碼字CW_2執行硬位元模式解碼程序或軟位元模式解碼程序,在此不加以限制。具體來說,在低密度奇偶檢查校正碼的迭代解碼中,更正電路1406可根據此些校驗子取得碼字CW_2中每一個資料位元的可靠度資訊,並且根據可靠度資訊決定資料位元中錯誤位元的索引。當要判斷是否產生有效的碼字時,更正電路1406可判斷錯誤位元的索引與校驗子是否符合奇偶條件。若錯誤位元的索引與校驗子符合奇偶條件,更正電路1406可輸出錯誤索引資訊,此錯誤索引資訊可用來更正碼字CW_2中的一或多個資料位元以產生有效的碼字。值得一提的是,當更正電路1406對一個碼字進行解碼時,可能會執行一或多次的迭代,直到獲得有效碼字或判定解碼失敗為止。每一次的迭代亦可稱為一迭代解碼程序。另一方面,碼字CW_2會被傳輸至解擾亂電路1407。解擾亂電路1407與擾亂電路1402是相互對應的。若一個資料的資料序列被擾亂電路1402擾亂,則解擾亂電路1407可將此被擾亂的資料序列還原。解擾亂電路1407用以解擾亂碼字CW_2,並且輸出解擾亂後的碼字CW_2。加法電路1408耦接至更正電路1406與解擾亂電路1407,並且用以根據錯誤索引資訊與解擾亂後的碼字CW_2來產生資料DATA_2。也就是說,加法電路1408會根據錯誤索引資訊來更正碼字CW_2。例如,在本範例實施例中,加法電路1408包括緩衝電路1409與異或(XOR)電路1410。緩衝電路1409用以暫存解擾亂後的碼字CW_2,並且XOR電路1410可根據錯誤位元的索引來對解擾亂後的碼字CW_2執行 模2的加法。藉此,XOR電路1410可產生資料DATA_2。換言之,資料DATA_2即為有效碼字,並且會被傳送至主機系統1000。然而,需注意的是,圖14中的這些電路的耦接關係可以被改變,且部分的電路也可以被替換為其他電路,而非限定於上述。
請再次參照圖11,記憶體控制電路單元104還包括時脈訊號輸出電路214。時脈訊號輸出電路214耦接至記憶體管理電路202、主機介面204、記憶體介面206、錯誤檢查與校正電路208、緩衝記憶體210及電源管理電路212。時脈訊號輸出電路214用以輸出具有相同或不相同的頻率的多個時脈(clock)訊號至記憶體管理電路202、主機介面204、記憶體介面206、錯誤檢查與校正電路208、緩衝記憶體210及電源管理電路212。若一個電路(例如,錯誤檢查與校正電路208)包含多個內部電路,則時脈訊號輸出電路214也可以分別提供具有相同或不相同的頻率的時脈訊號至此些內部電路。此外,在一範例實例中,時脈訊號輸出電路214也可以是僅提供時脈訊號至錯誤檢查與校正電路208,而記憶體管理電路202、主機介面204、記憶體介面206、緩衝記憶體210及電源管理電路212的時脈訊號則由另外的時脈訊號輸出電路(未繪示)提供。
圖15是根據一範例實施例繪示的時脈訊號輸出電路的概要方塊圖。必須瞭解的是,圖15所示之時脈訊號輸出電路的結構僅為一範例,本發明不以此為限。
請參照圖15,在本範例實施例中,時脈訊號輸出電路214 包括時脈訊號產生電路1501、除頻電路1502~1506及時脈控制電路1507。時脈訊號產生電路1501用以提供初始時脈訊號ICS。例如,時脈訊號產生電路1501包括一震盪器(oscillator)。除頻(dividing)電路1502~1506耦接至時脈訊號產生電路1501,並且用以根據初始時脈訊號ICS輸出經過除頻的時脈訊號。除頻電路1502~1506的數量可以是更多或更少,本發明不加以限制。在本範例實施例中,除頻電路1502耦接至更正電路1406,並且用以提供時脈訊號CS_1(亦稱為第一時脈訊號)/CS_2(亦稱為第二時脈訊號)/CS_3(亦稱為第三時脈訊號)至更正電路1406;除頻電路1503耦接至檢查電路1405,並且用以提供時脈訊號CS_4(亦稱為第四時脈訊號)至檢查電路1405;除頻電路1504耦接至記憶體管理電路202、主機介面204、緩衝電路1401、擾亂電路1402、緩衝電路1404、解擾亂電路1407及加法電路1408,並且用以提供時脈訊號CS_5(亦稱為第五時脈訊號)至記憶體管理電路202、主機介面204、緩衝電路1401、擾亂電路1402、緩衝電路1404、解擾亂電路1407及加法電路1408;除頻電路1505耦接至編碼電路1403,並且用以提供時脈訊號CS_6至編碼電路1403;除頻電路1506耦接至記憶體介面206,並且用以提供時脈訊號CS_7至記憶體介面206。也就是說,在本範例實施例中,時脈訊號CS_1/CS_2/CS_3是用以驅動更正電路1406;時脈訊號CS_4是用以驅動檢查電路1405;時脈訊號CS_5是用以驅動記憶體管理電路202、主機介面204、緩衝電路1401、擾亂電路1402、緩衝電路1404、解擾亂電 路1407及加法電路1408;時脈訊號CS_6是用以驅動編碼電路1403;時脈訊號CS_7是用以驅動記憶體介面206。本發明並不限制時脈訊號CS_1~CS_7的頻率各別為多少。此外,在另一範例實施例中,除頻電路1502~1506的數目以及除頻電路1502~1506與記憶體控制電路單元106中的各電路的耦接關係亦可以被調整,本發明不加以限制。時脈控制電路1507耦接至除頻電路1502,並且用以控制除頻電路1502。例如,時脈控制電路1507可控制除頻電路1502輸出的時脈訊號的頻率。此外,在另一範例實施例中,時脈控制電路1507也可以耦接至除頻電路1502~1506的至少其中之一,以分別控制除頻電路1502~1506輸出的時脈訊號的頻率。
假設目前除頻電路1502是提供時脈訊號CS_1至更正電路1406,則更正電路1406可以根據時脈訊號CS_1來對一碼字(亦稱為第一碼字)執行低密度奇偶檢查校正碼的至少一第一迭代解碼程序。更正電路1406所執行的迭代解碼程序已在前面說明過,在此不重複贅述。時脈控制電路1507更耦接至更正電路1406,並且會根據此至少一第一迭代解碼程序的迭代次數(亦稱為第一迭代次數)產生控制參數(亦稱為控制訊號)。換言之,此第一迭代次數是指示為了解碼第一碼字,更正電路1406執行了多少次的第一迭代解碼程序。第一迭代次數可以是由更正電路1406統計後傳送給時脈控制電路1507,或者由時脈控制電路1507即時統計,本發明不加以限制。時脈控制電路1507會將此控制參數傳送至除頻電路1502,並且除頻電路1502會根據此控制參數輸出時脈訊號CS_2 至更正電路1406。此時,若需要對另一碼字(亦稱為第二碼字)進行解碼,更正電路1406會根據時脈訊號CS_2對此第二碼字執行低密度奇偶檢查校正碼的至少一第二迭代解碼程序。
在一範例實施例中,更正電路1406還會根據時脈訊號CS_3對另一碼字(亦稱為第三碼字)執行低密度奇偶檢查校正碼的至少一第三迭代解碼程序。例如,此至少一第三迭代解碼程序可以是在第一迭代解碼程序之間或之後執行,且此至少一第三迭代解碼程序是在第二迭代解碼程序之前執行。時脈控制電路1507會計算此至少一第一迭代解碼程序的第一迭代次數與此至少一第三迭代解碼程序的迭代次數(亦稱為第三迭代次數)的一平均值。此平均值也可以是指加權平均值。或者,當對更多的迭代次數進行平均時,此平均值也可以是指中位數(median)值等,本發明不加以限制。時脈控制電路1507會根據此平均值產生上述控制參數。
在一範例實施例中,上述控制參數包括一第一控制參數與一第二控制參數。第一控制參數用以指示提高時脈訊號的頻率,並且第二控制參數用以指示降低時脈訊號的頻率。時脈控制電路1507會判斷此平均值是否超過一第一門檻值或低於一第二門檻值,其中第一門檻值等於或高於第二門檻值。若此平均值超過第一門檻值,時脈控制電路1507會輸出第一控制參數至除頻電路1502;若此平均值低於第二門檻值,時脈控制電路1507會輸出該第二控制參數至除頻電路1502。例如,假設目前除頻電路1502是輸出時脈訊號CS_1,並且時脈訊號CS_1的頻率(亦稱為第一頻 率)低於時脈訊號CS_2的頻率(亦稱為第二頻率),則根據第一控制參數,除頻電路1502會改為輸出頻率較高的時脈訊號CS_2。或者,假設目前除頻電路1502是輸出時脈訊號CS_1,並且時脈訊號CS_1的頻率高於時脈訊號CS_2的頻率,則根據第二控制參數,除頻電路1502會改為輸出頻率較低的時脈訊號CS_2。換言之,此第一控制參數指示將第一時脈訊號的頻率增加至第二時脈訊號的頻率,並且此第二控制參數指示將第一時脈訊號的頻率減少至第二時脈訊號的頻率。例如,假設目前除頻電路1502是輸出頻率為“100MHz”的時脈訊號CS_1,第一門檻值與第二門檻值都是“2”,並且第一迭代次數與第三迭代次數的平均值是“3”,則時脈控制電路1507會判定第一迭代次數與第三迭代次數的平均值超過第一門檻值,並且控制除頻電路1502輸出頻率為“133MHz”的時脈訊號CS_2。此外,此平均值也可以是對應於更多次的迭代解碼程序,而不限於上述第一迭代解碼程序與第三迭代解碼程序。
在一範例實施例中,時脈控制電路1507也可以包括一均值濾波器電路(mean filter)(未繪示)或一無限脈衝響應濾波器(infinite impulse response filter)(未繪示)。透過將上述第一迭代次數輸入至此均值濾波器電路或此無限脈衝響應濾波器,時脈控制電路1507也可以產生對應的控制參數。
表1是根據一範例實施例繪示的時脈訊號、迭代次數的平均值及碼字的平均錯誤位元數的關係表。若更正電路1406前N次解碼的N個碼字中的錯誤位元數普遍偏多,則更正電路1406前 N次解碼的平均迭代次數會偏高,並且由除頻電路1502輸出的時脈訊號的頻率會被對應增加;若更正電路1406前N次解碼的N個碼字中的錯誤位元數普遍偏少,則更正電路1406前N次解碼的平均迭代次數會偏低,並且由除頻電路1502輸出的時脈訊號的頻率會被對應減少。換言之,可透過更正電路1406前N次解碼各別的迭代次數或前N次解碼的N個迭代次數的平均值,來決定要提高或降低由除頻電路1502輸出的時脈訊號的頻率。在此,N預設是“8”。然而,在另一範例實施例中,N可以是任意的正整數。
在本範例實施例中,由除頻電路1502輸出的時脈訊號的 頻率,與由除頻電路1503~1506輸出的時脈訊號的頻率無關。也就是說,在本範例實施例中,不管除頻電路1502輸出的時脈訊號的頻率如何變化,除頻電路1503~1506都是會輸出具有預設頻率的時脈訊號。然而,在另一範例實施例中,除頻電路1502輸出的時脈訊號的頻率,也可以與由除頻電路1503~1506的至少其中之一輸出的時脈訊號的頻率有關。值得一提的是,記憶體控制電路單元104(或記憶體介面206)的吞吐率(throughput)是有限的,因此即使提高或降低提供至更正電路1406的時脈訊號的頻率,對於記憶體控制電路單元104(或記憶體介面206)的吞吐率的影響也是有限的。
圖16是根據一範例實施例繪示的解碼方法的流程圖。請參照圖16,在步驟S1602中,由更正電路根據第一時脈訊號對第一碼字執行低密度奇偶檢查校正碼的至少一第一迭代解碼程序。在步驟S1604中,根據所述第一迭代解碼程序的第一迭代次數產生控制參數。在步驟S1606中,根據所述控制參數輸出第二時脈訊號至所述更正電路。在步驟S1608中,由所述更正電路根據所述第二時脈訊號對第二碼字執行所述低密度奇偶檢查校正碼的至少一第二迭代解碼程序。
然而,圖16中各步驟已詳細說明如上,在此便不在贅述。值得注意的是,圖16中各步驟可以實作為多個程式碼或是電路,本發明並不在此限。此外,圖16的方法可以搭配以上實施例使用,也可以單獨使用,本發明並不在此限。
綜上所述,在本發明的一範例實施例中,所述解碼方法、記憶體儲存裝置及記憶體控制電路單元可根據解碼的迭代次數,來動態地調整負責迭代解碼的更正電路當前的時脈訊號的頻率。藉此,可降低用於解碼的耗電量,並且可有效維持解碼效率。此外,由於是根據過去的資訊來決定更正電路當前的時脈訊號的頻率,因此提供至更正電路的時脈訊號的頻率可以被事先決定,而不會影響到當前的解碼。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S1602、S1604、S1606、S1608‧‧‧步驟

Claims (18)

  1. 一種解碼方法,用於一記憶體控制電路單元,該解碼方法包括:由一更正電路根據一第一時脈訊號對一第一碼字執行一低密度奇偶檢查校正碼(low density parity code,LDPC)的至少一第一迭代解碼程序;根據該至少一第一迭代解碼程序的一第一迭代次數產生一控制參數;根據該控制參數輸出一第二時脈訊號至該更正電路;以及由該更正電路根據該第二時脈訊號對一第二碼字執行該低密度奇偶檢查校正碼的至少一第二迭代解碼程序。
  2. 如申請專利範圍第1項所述的解碼方法,更包括:由該更正電路根據一第三時脈訊號對一第三碼字執行該低密度奇偶檢查校正碼的至少一第三迭代解碼程序,其中根據該至少一第一迭代解碼程序的該第一迭代次數產生該控制參數的步驟包括:計算該至少一第一迭代解碼程序的該第一迭代次數與該至少一第三迭代解碼程序的一第三迭代次數的一平均值;以及根據該平均值產生該控制參數。
  3. 如申請專利範圍第2項所述的解碼方法,其中該控制參數包括一第一控制參數與一第二控制參數,而根據該平均值產生該 控制參數的步驟包括:判斷該平均值是否超過一第一門檻值或低於一第二門檻值,其中該第一門檻值等於或高於該第二門檻值;若該平均值超過該第一門檻值,輸出該第一控制參數,其中該第一控制參數指示將該第一時脈訊號的一第一頻率增加至該第二時脈訊號的一第二頻率;以及若該平均值低於該第二門檻值,輸出該第二控制參數,其中該第二控制參數指示將該第一時脈訊號的該第一頻率減少至該第二時脈訊號的該第二頻率。
  4. 如申請專利範圍第1項所述的解碼方法,其中根據該至少一第一迭代解碼程序的該第一迭代次數產生該控制參數的步驟包括:將該至少一第一迭代解碼程序的該第一迭代次數輸入至一均值濾波器電路或一無限脈衝響應濾波器。
  5. 如申請專利範圍第1項所述的解碼方法,更包括:輸出一第四時脈訊號至一檢查電路;以及由該檢查電路根據該第四時脈訊號輸出對應於該第二碼字的至少一校驗子。
  6. 如申請專利範圍第1項所述的解碼方法,更包括:輸出一第五時脈訊號至一加法電路;以及由該加法電路根據該第五時脈訊號與該更正電路所輸出的一錯誤索引資訊來更正該第二碼字。
  7. 一種記憶體儲存裝置,包括:一連接介面單元,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,包括多個實體抹除單元;以及一記憶體控制電路單元,耦接至該連接介面單元與該可複寫式非揮發性記憶體模組,其中該記憶體控制電路單元用以控制一更正電路根據一第一時脈訊號對一第一碼字執行一低密度奇偶檢查校正碼的至少一第一迭代解碼程序,該記憶體控制電路單元更用以根據該至少一第一迭代解碼程序的一第一迭代次數產生一控制參數,該記憶體控制電路單元更用以根據該控制參數輸出一第二時脈訊號至該更正電路,該記憶體控制電路單元更用以控制該更正電路根據該第二時脈訊號對一第二碼字執行該低密度奇偶檢查校正碼的至少一第二迭代解碼程序。
  8. 如申請專利範圍第7項所述的記憶體儲存裝置,該記憶體控制電路單元更用以控制該更正電路根據一第三時脈訊號對一第三碼字執行該低密度奇偶檢查校正碼的至少一第三迭代解碼程序,其中該記憶體控制電路單元根據該至少一第一迭代解碼程序的該第一迭代次數產生該控制參數的操作包括: 計算該至少一第一迭代解碼程序的該第一迭代次數與該至少一第三迭代解碼程序的一第三迭代次數的一平均值;以及根據該平均值產生該控制參數。
  9. 如申請專利範圍第8項所述的記憶體儲存裝置,其中該控制參數包括一第一控制參數與一第二控制參數,而該記憶體控制電路單元根據該平均值產生該控制參數的操作包括:判斷該平均值是否超過一第一門檻值或低於一第二門檻值,其中該第一門檻值等於或高於該第二門檻值;若該平均值超過該第一門檻值,輸出該第一控制參數,其中該第一控制參數指示將該第一時脈訊號的一第一頻率增加至該第二時脈訊號的一第二頻率;以及若該平均值低於該第二門檻值,輸出該第二控制參數,其中該第二控制參數指示將該第一時脈訊號的該第一頻率減少至該第二時脈訊號的該第二頻率。
  10. 如申請專利範圍第7項所述的記憶體儲存裝置,其中該記憶體控制電路單元根據該至少一第一迭代解碼程序的該第一迭代次數產生該控制參數的操作包括:將該至少一第一迭代解碼程序的該第一迭代次數輸入至一均值濾波器電路或一無限脈衝響應濾波器。
  11. 如申請專利範圍第7項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以輸出一第四時脈訊號至一檢查電路, 並且控制該檢查電路根據該第四時脈訊號輸出對應於該第二碼字的至少一校驗子。
  12. 如申請專利範圍第7項所述的記憶體儲存裝置,其中該記憶體控制電路單元更用以輸出一第五時脈訊號至一加法電路,並且控制該加法電路根據該第五時脈訊號與該更正電路所輸出的一錯誤索引資訊來更正該第二碼字。
  13. 一種記憶體控制電路單元,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組包括多個實體抹除單元,該記憶體控制電路單元包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一記憶體管理電路,耦接至該主機介面與該記憶體介面;一錯誤檢查與校正電路,耦接至該記憶體管理電路,其中該錯誤檢查與校正電路包括一更正電路,並且該更正電路用以根據一第一時脈訊號對一第一碼字執行一低密度奇偶檢查校正碼的至少一第一迭代解碼程序;以及一時脈訊號輸出電路,耦接至該錯誤檢查與校正電路,並且用以輸出該第一時脈訊號至該更正電路,其中該時脈訊號輸出電路更用以根據該至少一第一迭代解碼程序的一第一迭代次數產生一控制參數,該時脈訊號輸出電路更用以根據該控制參數輸出一第二時脈訊號至該更正電路, 該更正電路更用以根據該第二時脈訊號對一第二碼字執行該低密度奇偶檢查校正碼的至少一第二迭代解碼程序。
  14. 如申請專利範圍第13項所述的記憶體控制電路單元,其中該時脈訊號輸出電路更用以輸出一第三時脈訊號至該更正電路,該更正電路更用以根據該第三時脈訊號對一第三碼字執行該低密度奇偶檢查校正碼的至少一第三迭代解碼程序,其中該時脈訊號輸出電路根據該至少一第一迭代解碼程序的該第一迭代次數產生該控制參數的操作包括:計算該至少一第一迭代解碼程序的該第一迭代次數與該至少一第三迭代解碼程序的一第三迭代次數的一平均值;以及根據該平均值產生該控制參數。
  15. 如申請專利範圍第14項所述的記憶體控制電路單元,其中該控制參數包括一第一控制參數與一第二控制參數,而該時脈訊號輸出電路根據該平均值產生該控制參數的操作包括:判斷該平均值是否超過一第一門檻值或低於一第二門檻值,其中該第一門檻值等於或高於該第二門檻值;若該平均值超過該第一門檻值,輸出該第一控制參數,其中該第一控制參數指示將該第一時脈訊號的一第一頻率增加至該第二時脈訊號的一第二頻率;以及若該平均值低於該第二門檻值,輸出該第二控制參數,其中 該第二控制參數指示將該第一時脈訊號的該第一頻率減少至該第二時脈訊號的該第二頻率。
  16. 如申請專利範圍第13項所述的記憶體控制電路單元,其中該時脈訊號輸出電路根據該至少一第一迭代解碼程序的該第一迭代次數產生該控制參數的操作包括:將該至少一第一迭代解碼程序的該第一迭代次數輸入至一均值濾波器電路或一無限脈衝響應濾波器。
  17. 如申請專利範圍第13項所述的記憶體控制電路單元,其中該錯誤檢查與校正電路更包括一檢查電路,該時脈訊號輸出電路更用以輸出一第四時脈訊號至該檢查電路,該檢查電路用以根據該第四時脈訊號輸出對應於該第二碼字的至少一校驗子。
  18. 如申請專利範圍第13項所述的記憶體控制電路單元,其中該錯誤檢查與校正電路更包括一加法電路,該時脈訊號輸出電路更用以輸出一第五時脈訊號至該加法電路,該加法電路用以根據該第五時脈訊號與該更正電路所輸出的一錯誤索引資訊來更正該第二碼字。
TW103124424A 2014-07-16 2014-07-16 解碼方法、記憶體儲存裝置及記憶體控制電路單元 TWI550628B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW103124424A TWI550628B (zh) 2014-07-16 2014-07-16 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US14/477,867 US10193569B2 (en) 2014-07-16 2014-09-05 Decoding method, memory storage device and memory control circuit unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103124424A TWI550628B (zh) 2014-07-16 2014-07-16 解碼方法、記憶體儲存裝置及記憶體控制電路單元

Publications (2)

Publication Number Publication Date
TW201604882A TW201604882A (zh) 2016-02-01
TWI550628B true TWI550628B (zh) 2016-09-21

Family

ID=55075435

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103124424A TWI550628B (zh) 2014-07-16 2014-07-16 解碼方法、記憶體儲存裝置及記憶體控制電路單元

Country Status (2)

Country Link
US (1) US10193569B2 (zh)
TW (1) TWI550628B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354123B2 (en) 2019-10-18 2022-06-07 Macronix International Co., Ltd. Memory device and computing in memory method thereof

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI512750B (zh) * 2014-07-30 2015-12-11 Phison Electronics Corp 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
TWI607452B (zh) * 2016-08-12 2017-12-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10348337B2 (en) * 2017-02-23 2019-07-09 Winbond Electronics Corp. Data read method and memory storage device using the same
TWI631570B (zh) * 2017-09-04 2018-08-01 威盛電子股份有限公司 錯誤檢查糾正解碼方法與裝置
KR20210138390A (ko) 2020-05-12 2021-11-19 에스케이하이닉스 주식회사 에러 정정 디코더, 이를 포함하는 에러 정정 회로 및 에러 정정 디코더의 동작 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102468857A (zh) * 2010-11-04 2012-05-23 承景科技股份有限公司 将低密度奇偶校验码的码块译码的系统及其方法
US8289771B2 (en) * 2010-06-23 2012-10-16 Phison Electronics Corp. Data reading method and control circuit and memory controller using the same
US8296622B2 (en) * 2010-05-18 2012-10-23 National Taiwan University Programmable LDPC code decoder and decoding method thereof
US20120311402A1 (en) * 2011-06-02 2012-12-06 Phison Electronics Corp. Data reading method, memory controller, and memory storage device
CN101777921B (zh) * 2010-01-28 2013-04-17 中国人民解放军国防科学技术大学 用于显式存储片上系统的结构化ldpc码译码方法及装置
US8429501B2 (en) * 2010-09-17 2013-04-23 Phison Electronics Corp. Memory storage device, memory controller thereof, and method thereof for generating log likelihood ratio
US8510637B2 (en) * 2010-04-14 2013-08-13 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
US20140133225A1 (en) * 2012-11-12 2014-05-15 Lite-On It Corporation Data compensating method for flash memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3483375D1 (de) * 1983-06-22 1990-11-15 Hitachi Ltd Verfahren und system zur fehlerkorrektur.
FR2763454B1 (fr) * 1997-05-15 1999-08-06 France Telecom Dispositif d'egalisation et de decodage pour un canal de transmission numerique selectif en frequence
US6745352B2 (en) * 2000-12-13 2004-06-01 Ericsson Inc. Methods of estimating error rates for communications received using iterative processing and related receivers
US7380197B1 (en) * 2005-07-12 2008-05-27 Xilinx, Inc. Circuit and method for error detection
US8117515B2 (en) * 2007-03-23 2012-02-14 Sizhen Yang Methodology and apparatus for soft-information detection and LDPC decoding on an ISI channel
JP5846589B2 (ja) * 2010-09-29 2016-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソリッド・ステート・メモリ・デバイスにおける復号
US8839051B1 (en) * 2011-02-25 2014-09-16 Sk Hynix Memory Solutions Inc. Advance clocking scheme for ECC in storage
WO2013140727A1 (ja) * 2012-03-19 2013-09-26 パナソニック株式会社 復号装置
US8856431B2 (en) * 2012-08-02 2014-10-07 Lsi Corporation Mixed granularity higher-level redundancy for non-volatile memory

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777921B (zh) * 2010-01-28 2013-04-17 中国人民解放军国防科学技术大学 用于显式存储片上系统的结构化ldpc码译码方法及装置
US8510637B2 (en) * 2010-04-14 2013-08-13 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
US8296622B2 (en) * 2010-05-18 2012-10-23 National Taiwan University Programmable LDPC code decoder and decoding method thereof
US8289771B2 (en) * 2010-06-23 2012-10-16 Phison Electronics Corp. Data reading method and control circuit and memory controller using the same
US8429501B2 (en) * 2010-09-17 2013-04-23 Phison Electronics Corp. Memory storage device, memory controller thereof, and method thereof for generating log likelihood ratio
CN102468857A (zh) * 2010-11-04 2012-05-23 承景科技股份有限公司 将低密度奇偶校验码的码块译码的系统及其方法
US20120311402A1 (en) * 2011-06-02 2012-12-06 Phison Electronics Corp. Data reading method, memory controller, and memory storage device
US20140133225A1 (en) * 2012-11-12 2014-05-15 Lite-On It Corporation Data compensating method for flash memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354123B2 (en) 2019-10-18 2022-06-07 Macronix International Co., Ltd. Memory device and computing in memory method thereof
TWI774067B (zh) * 2019-10-18 2022-08-11 旺宏電子股份有限公司 記憶體裝置及其記憶體內計算方法

Also Published As

Publication number Publication date
TW201604882A (zh) 2016-02-01
US20160020784A1 (en) 2016-01-21
US10193569B2 (en) 2019-01-29

Similar Documents

Publication Publication Date Title
TWI540586B (zh) 解碼方法、記憶體儲存裝置、記憶體控制電路單元
TWI508082B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
TWI537966B (zh) 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元
TWI550615B (zh) 資料存取方法、記憶體儲存裝置及記憶體控制電路單元
TWI523018B (zh) 解碼方法、記憶體儲存裝置、記憶體控制電路單元
TWI543178B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI592937B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI541820B (zh) 解碼方法、記憶體控制電路單元及記憶體儲存裝置
TWI550628B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI512732B (zh) 解碼方法、記憶體儲存裝置與非揮發性記憶體模組
TWI670715B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI612527B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TWI527382B (zh) 解碼方法、解碼電路、記憶體儲存裝置與控制電路單元
TW201727660A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN105022674A (zh) 解码方法、存储器存储装置、存储器控制电路单元
TW201802821A (zh) 解碼方法、記憶體控制電路單元及記憶體儲存裝置
TWI527036B (zh) 解碼方法、記憶體儲存裝置、記憶體控制電路單元
TWI721842B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN105320573B (zh) 解码方法、存储器存储装置及存储器控制电路单元
TWI525633B (zh) 解碼方法、記憶體儲存裝置、記憶體控制電路單元