數(shù)據(jù)儲存裝置及其錯誤校正方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是關(guān)于一種存儲器裝置的錯誤校正方法;特別是關(guān)于一種具有兩種錯誤校證修正的錯誤校正方法。
【背景技術(shù)】
[0002]快閃存儲器為一種普遍的非揮發(fā)性數(shù)據(jù)儲存裝置,以電性方式抹除與程序化。以與非門型的快閃存儲器(即NAND FLASH)為例,常用作存儲卡(memory card)、通用序列總線閃存裝置(USB flash device)、固態(tài)硬盤(SSD)、嵌入式快閃存儲器模塊(eMMC)…等使用。
[0003]快閃存儲器(如,NAND FLASH)的儲存陣列包括多個區(qū)塊(blocks)。各區(qū)塊包括多個頁(pages)。由于快閃存儲器的存取過程中可能會發(fā)生數(shù)據(jù)內(nèi)容的錯誤,所以目前在存入數(shù)據(jù)時是將原始的數(shù)據(jù)進(jìn)行編碼后,再儲存編碼后的數(shù)據(jù)至快閃存儲器中,而數(shù)據(jù)讀取時則將編碼的數(shù)據(jù)讀出,再解碼所讀出的編碼數(shù)據(jù)來得到原先的數(shù)據(jù)。編/解碼操作雖然能夠進(jìn)行除錯,然而僅只能更正部分的比特錯誤。而當(dāng)發(fā)生超過一定程度以上的錯誤時,快閃存儲器控制器在執(zhí)行完解碼操作后將發(fā)現(xiàn)無法對編碼數(shù)據(jù)進(jìn)行有效解碼。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所提供的數(shù)據(jù)儲存裝置以及錯誤校正方法可借由兩種錯誤校正演算法,對數(shù)據(jù)進(jìn)行錯誤校正。
[0005]本發(fā)明提供一種數(shù)據(jù)儲存裝置包括一快閃存儲器以及一控制器??刂破鞅辉O(shè)置為用以在一既定條件下,對快閃存儲器中的一第一頁面的至少一第一數(shù)據(jù)區(qū)段,進(jìn)行一第一錯誤校正,以獲得相應(yīng)于第一數(shù)據(jù)區(qū)段的一數(shù)據(jù)區(qū)段讀取電壓,并借由數(shù)據(jù)區(qū)段讀取電壓讀取第一頁面的一第一元數(shù)據(jù)區(qū)段,并對借由數(shù)據(jù)區(qū)段讀取電壓所讀取的第一元數(shù)據(jù)區(qū)段的數(shù)據(jù),進(jìn)行一第二錯誤校正,其中第一錯誤校正的編碼以及演算法不同于第二錯誤校正。
[0006]快閃存儲器包括多個頁面,每一頁面包括多個數(shù)據(jù)區(qū)段以及至少一元數(shù)據(jù)區(qū)段,每一數(shù)據(jù)區(qū)段具有相應(yīng)的一第一錯誤校正碼,每一元數(shù)據(jù)區(qū)段具有相應(yīng)的一第二錯誤校正碼,其中頁面包括第一頁面。
[0007]在一實施例中,第一錯誤校正為一低密度奇偶檢查(Low-density parity-checkcode, LDPC)錯誤校正,并且第二錯誤校正為BCH錯誤校正,其中控制器更包括一低密度奇偶檢查錯誤校正引擎以及一 BCH錯誤校正引擎,第一錯誤校正碼為低密度奇偶檢查碼,并且第二錯誤校正碼為BCH錯誤校正碼。
[0008]在一實施例中,既定條件包括控制器無法借由第二錯誤校正,對借由一既定讀取電壓所讀取的第一元數(shù)據(jù)區(qū)段的數(shù)據(jù)進(jìn)行錯誤校正。在另一實施例中,快閃存儲器更包括一重復(fù)讀取電壓表,用以儲存分別相應(yīng)于每一元數(shù)據(jù)區(qū)段的多個重復(fù)讀取電壓組,并且既定條件更包括控制器無法借由第二錯誤校正,對借由第一元數(shù)據(jù)區(qū)段的重復(fù)讀取對壓組所讀取的數(shù)據(jù),進(jìn)行錯誤校正。
[0009]本發(fā)明亦提供一種錯誤校正方法,適用于一數(shù)據(jù)儲存裝置。錯誤校正方法包括:對數(shù)據(jù)儲存裝置中的一快閃存儲器中的一第一頁面的至少一第一數(shù)據(jù)區(qū)段,進(jìn)行一第一錯誤校正,以獲得相應(yīng)于第一數(shù)據(jù)區(qū)段的一數(shù)據(jù)區(qū)段讀取電壓;借由數(shù)據(jù)區(qū)段讀取電壓讀取第一頁面的一第一元數(shù)據(jù)區(qū)段;以及對借由數(shù)據(jù)區(qū)段讀取電壓所讀取的第一元數(shù)據(jù)區(qū)段的數(shù)據(jù),進(jìn)行一第二錯誤校正。
[0010]在一實施例中錯誤校正方法,更包括:借由一既定讀取電壓,讀取第一頁面的至少一第一元數(shù)據(jù)區(qū)段;對借由一既定讀取電壓所讀取的第一元數(shù)據(jù)區(qū)段的數(shù)據(jù),進(jìn)行第二錯誤校正;以及當(dāng)?shù)诙e誤校正無法修正借由既定讀取電壓所讀取的第一元數(shù)據(jù)區(qū)段的數(shù)據(jù)時,執(zhí)行對第一數(shù)據(jù)區(qū)段進(jìn)行第一錯誤校正的步驟。
[0011]在一實施例中錯誤校正方法更包括:借由一既定讀取電壓,讀取第一頁面的至少一第一數(shù)據(jù)區(qū)段;對借由一既定讀取電壓所讀取的第一元數(shù)據(jù)區(qū)段的數(shù)據(jù),進(jìn)行第二錯誤校正;以及當(dāng)?shù)诙e誤校正無法修正借由既定讀取電壓所讀取的第一元數(shù)據(jù)區(qū)段的數(shù)據(jù)時,借由一重復(fù)讀取電壓表中相應(yīng)于第一元數(shù)據(jù)區(qū)段的一讀取電壓組,重復(fù)讀取第一元數(shù)據(jù)區(qū)段的數(shù)據(jù)以進(jìn)行第二錯誤校正;以及當(dāng)?shù)诙e誤校正無法修正借由讀取電壓組所讀取的第一元數(shù)據(jù)區(qū)段的數(shù)據(jù)時,執(zhí)行對第一數(shù)據(jù)區(qū)段進(jìn)行第一錯誤校正的步驟。
【附圖說明】
[0012]圖1是本發(fā)明的一種實施例的電子系統(tǒng)的方塊圖。
[0013]圖2A-2B是本發(fā)明的一種實施例的頁面的示意圖。
[0014]圖3是本發(fā)明的一種實施例的錯誤校正方法的流程圖。
[0015]圖4A-4B是本發(fā)明的另一種實施例的錯誤校正方法的流程圖。
[0016]【附圖標(biāo)記說明】
[0017]100電子系統(tǒng);
[0018]120 主機;
[0019]140數(shù)據(jù)儲存裝置;
[0020]160 控制器;
[0021]162運算單元;
[0022]164永久存儲器;
[0023]180快閃存儲器;
[0024]200 頁面;
[0025]200A1-200AN 數(shù)據(jù)區(qū)段;
[0026]200B1-200BN 第一錯誤校正碼;
[0027]202A1元數(shù)據(jù)區(qū)段;
[0028]202B1第二錯誤校正碼;
[0029]S300-S312、S400_S412 步驟。
【具體實施方式】
[0030]以下將詳細(xì)討論本發(fā)明各種實施例的裝置及使用方法。然而值得注意的是,本發(fā)明所提供的許多可行的發(fā)明概念可實施在各種特定范圍中。這些特定實施例僅用于舉例說明本發(fā)明的裝置及使用方法,但非用于限定本發(fā)明的范圍。
[0031]圖1是本發(fā)明的一種實施例的電子系統(tǒng)的方塊圖。電子系統(tǒng)100包括一主機120以及一數(shù)據(jù)儲存裝置140。數(shù)據(jù)儲存裝置140包括一快閃存儲器180以及一控制器160,且可根據(jù)主機110所下達(dá)的命令操作。
[0032]控制器160包括一運算單元162以及一永久存儲器(如,只讀存儲器ROM) 164。永久存儲器164與所載的程序碼、數(shù)據(jù)組成固件(firmware),由運算單元162執(zhí)行,使控制器160基于該固件控制該快閃存儲器180,其中運算單元162更包括一第一錯誤校正引擎以及一第二錯誤校正引擎。第一錯誤校正引擎是用以在數(shù)據(jù)區(qū)段的數(shù)據(jù)發(fā)生錯誤時,對所讀取的數(shù)據(jù)區(qū)段進(jìn)行一第一錯誤校正。第二錯誤校正引擎是用以在元數(shù)據(jù)(Meta data)區(qū)段發(fā)生錯誤時,對元數(shù)據(jù)區(qū)段的數(shù)據(jù)進(jìn)行依第二錯誤校正。值得注意的是,第一錯誤校正的編碼以及演算法不同于第二錯誤校正。另外,第一錯誤校正引擎以及一第二錯誤校正引擎可設(shè)置于處理單元162之外,亦可同時設(shè)置于處理單元162的中,本發(fā)明不限于此。
[0033]快閃存儲器180包括多個頁面以及多個字符線與多個比特線,其中每一字符線用以連接至少一頁面,以選擇所欲讀取的頁面。舉例而言,當(dāng)快閃存儲器180為單階儲存單元(Single-Level Cell,SLC)時,一條比特線用以連接至一個頁面。當(dāng)快閃存儲器180為多階儲存單元(Mult1-Level Ce 11, MLC)時,一條比特線用以連接至兩個頁面。當(dāng)快閃存儲器180為三階儲存單元(Triple-Level Cell1TLC)時,一條比特線用以連接至三個頁面,但本發(fā)明不限于此。每一頁面包括多個數(shù)據(jù)區(qū)段以及至少一元數(shù)據(jù)(Meta data)區(qū)段用以儲存元數(shù)據(jù),但本發(fā)明不限于此。一個頁面可具有一個元數(shù)據(jù)區(qū)段、兩個元數(shù)據(jù)區(qū)段、或者三個元數(shù)據(jù)區(qū)段,但本發(fā)明不限于此。另外,一頁面可包括一個、四個或者八個數(shù)據(jù)區(qū)段,但本發(fā)明不限于此。
[0034]如圖2A以及圖2B所示,頁面200包括多個數(shù)據(jù)區(qū)段200A1-200AN以及一元數(shù)據(jù)區(qū)段202A1,每一數(shù)據(jù)區(qū)段200A1-200AN具有相應(yīng)的一第一錯誤校正碼200B1-200BN,每一元數(shù)據(jù)區(qū)段202A1具有相應(yīng)的一第二錯誤校正碼202B1。值得注意的是,第一錯誤校正碼200B1-200BN與第二錯誤校正碼202B1是不同的編碼,第一錯誤校正碼200B1-200BN是用以對所相應(yīng)的數(shù)據(jù)區(qū)段200A1-200AN進(jìn)行第一錯誤校正,并且第二錯誤校正碼202B1是用以對所相應(yīng)的元數(shù)據(jù)區(qū)段202A1進(jìn)行第二錯誤校正。另外,元數(shù)據(jù)區(qū)段202A1可位于頁面200的前端(如圖2A所示)、頁面200的后端(如圖2B所示)或者頁面200的中間區(qū)域(未圖示),但本發(fā)明不限于此。在其他實施例中,一個頁面可具有兩個以上的元數(shù)據(jù)區(qū)段。另夕卜,元數(shù)據(jù)區(qū)段202A1是用以儲存數(shù)據(jù)區(qū)段200A1-200AN的信息,例如地址、索引等等,但本發(fā)明不限于此。
[0035]在本發(fā)明的一實施例中,第一錯誤校正引擎為一低密度奇偶檢查(Lo