專利名稱:應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于一種快閃存儲器控制技術(shù),尤指一種應(yīng)用可變動錯誤更正碼容量的快 閃存儲器控制方法。
背景技術(shù):
快閃存儲器為類似EEPROM的結(jié)構(gòu),因為半導(dǎo)體設(shè)計的原因,有一定的錯誤機率, 所以使用錯誤更正碼(Error Correction Code, ECC)來糾正發(fā)生錯誤的數(shù)據(jù)。錯誤更正的能力及快閃存儲器內(nèi)用以管理數(shù)據(jù)的空間大小取決于ECC的容量,習(xí) 知技術(shù)乃以一個最大允許容量的ECC來實現(xiàn)錯誤更正的功能,所以所有數(shù)據(jù)的錯誤更正能 力皆為相同。請參考圖4所示,為4K的數(shù)據(jù)頁面(page)在不同通道下管理數(shù)據(jù)(MD, Management Data)的長度和 ECC 長度的關(guān)系,若采用 BCH(Bose,Ray-Chaudhuri, Hocquenghem)理論所推算出來的ECC容量,允許在數(shù)據(jù)區(qū)域(data area)內(nèi)產(chǎn)生8個比特 (bit)的錯誤,在此8個bit的錯誤更正能力下,需要用到13個比特組的容量。一般而言,采用上述固定式ECC設(shè)計的快閃存儲器控制器,無法充分使用大數(shù)據(jù) 頁面(data page)型的快閃存儲器(例如8K page)容量。
發(fā)明內(nèi)容
本發(fā)明的目的在于,解決現(xiàn)有快閃存儲器當(dāng)中的錯誤更正碼(ECC)及管理數(shù)據(jù) (MD,Management Data)設(shè)計均采固定長度,無法有效提高錯誤更正能力及有效使用大型數(shù) 據(jù)頁面的技術(shù)問題。為達成前述目的,本發(fā)明應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,包 含有以下步驟首先,根據(jù)數(shù)據(jù)頁面的容量及第一管理數(shù)據(jù)的長度,于快閃存儲器的第一通道中, 預(yù)設(shè)定具有第一長度的錯誤更正碼,且根據(jù)該數(shù)據(jù)頁面的容量及第二管理數(shù)據(jù)的長度,于 快閃存儲器的第二通道中,預(yù)設(shè)定具有第二長度的錯誤更正碼;接著,檢查目前所欲存取的通道是否為第一通道,若是,則將第一通道的錯誤更正 碼長度設(shè)定為第一長度;若否,則將第二通道的錯誤更正碼長度設(shè)定為第二長度。本發(fā)明的有益效果在于,藉由上述方法,通道1以后的錯誤更正碼長度可被提高, 本發(fā)明采用不同容量的錯誤更正碼(ECC),即對不同通道設(shè)定具有不同長度的錯誤更正碼 (ECC),可使整體快閃存儲器的錯誤更正能力得以有效提升。
圖1為依據(jù)本發(fā)明技術(shù),2K數(shù)據(jù)頁面于不同通道下,管理數(shù)據(jù)長度和ECC碼長度的 關(guān)系示意圖。圖2為依據(jù)本發(fā)明技術(shù),4K數(shù)據(jù)頁面于不同通道下,管理數(shù)據(jù)長度和ECC碼長度的關(guān)系示意圖。圖3為依據(jù)本發(fā)明對多通道的快閃存儲器設(shè)定其更正比特數(shù)的步驟流程圖。圖4為習(xí)知4K數(shù)據(jù)頁面于不同通道下,管理數(shù)據(jù)長度和ECC碼長度的關(guān)系示意 圖。
具體實施例方式NAND快閃存儲器的架構(gòu)是由多個數(shù)據(jù)頁面(page)組成,每一個數(shù)據(jù)頁面包含數(shù) 據(jù)(data)及空余(spare)兩區(qū)域,故每個數(shù)據(jù)頁面的大小為(512+16) XN,其中N代表一個 數(shù)據(jù)頁面中所對應(yīng)的磁區(qū)數(shù)目,例如2K數(shù)據(jù)頁面的快閃存儲器,其N為4,4K數(shù)據(jù)頁面的N =8,目前NAND快閃存儲器的數(shù)據(jù)頁面大致上可分成512、2K、4K、8K bytes等數(shù)種規(guī)格,然 后由64個或128個數(shù)據(jù)頁面組成一個區(qū)塊(block)。在快閃存儲器不同應(yīng)用的區(qū)塊(block)及不同的通道中,所需要的管理容量也不 同。一般而言,2K數(shù)據(jù)頁面的快閃存儲器中,其空余(spare)區(qū)域大小為16x4 = 64個比特 組。若配合以BCH理論所推算出來的8個比特更正能力,錯誤更正碼(ECC)所占用的大小 為13x4 = 52個比特組,所以只允許管理數(shù)據(jù)長度為64-52 = 12個比特組。本發(fā)明的控制方法為在快閃存儲器中的第一通道中,根據(jù)數(shù)據(jù)頁面容量及第一管 理數(shù)據(jù)的長度,設(shè)定具有第一長度的錯誤更正碼;在快閃存儲器中的第二通道中,根據(jù)數(shù)據(jù)頁面容量及第二管理數(shù)據(jù)的長度,設(shè)定 具有第二長度的錯誤更正碼;設(shè)定該第一長度的錯誤更正碼及第二長度的錯誤更正碼分別具有不同的識別碼, 其中,第一長度小于第二長度,以下配合圖式加以詳細說明。請參考圖1所示,以2K容量的數(shù)據(jù)頁面為范例說明,依據(jù)本發(fā)明的技術(shù),快閃存儲 器控制器于管理快閃存儲器時,在通道0上會放置完整的管理數(shù)據(jù),以便在讀取時能一次 讀出所需的管理數(shù)據(jù),因此將通道0的錯誤更正碼(ECC)定義為52bytes、管理數(shù)據(jù)長度定 義為12bytes ;但自通道1以后,所需要的管理數(shù)據(jù)量縮減到約4bytes,換言之可供存放錯 誤更正碼(ECC)的空間為便可提高為64-4 = 60bytes。本發(fā)明即是對通道0與其它通道分別指定不同長度的錯誤更正碼及管理數(shù)據(jù),使 各通道能獲得更多比特組的錯誤更正碼,藉此提升數(shù)據(jù)更正的能力。請參考圖2所示,當(dāng)本 發(fā)明應(yīng)用于4K數(shù)據(jù)頁面的快閃存儲器時,通道0具有3X8bytes的管理數(shù)據(jù),而錯誤更正 碼的長度為13X8bytes,通道1以后的管理數(shù)據(jù)縮減成2X8bytes,故有更多空間存放錯誤 更正碼,錯誤更正碼的長度提高為14X8bytes。本發(fā)明可以在不同的通道上采用不同容量 的錯誤更正碼(ECC),藉此提高錯誤更正效能。發(fā)生錯誤的通道是隨機的,所以平均來說整 體效能會較固定式的要高。為了辨識不同長度的錯誤更正碼(ECC)以利于讀取,所以本發(fā)明于錯誤更正碼當(dāng) 中加入一識別碼,該識別碼存放在一固定位置以快速被讀出。較佳位置為錯誤更正碼的最 前一個比特組或最后一個比特組。為加速決定錯誤更正碼更正能力的設(shè)定,可以設(shè)定一套規(guī)則來決定不同通道不 同區(qū)塊上的更正能力,舉例來說,該規(guī)則可為將系統(tǒng)的區(qū)塊(Block)分為數(shù)據(jù)區(qū)塊(Data block)、臨時區(qū)塊(Temp block)、信息區(qū)塊(Info block)等不同種類,每種區(qū)塊各給予一個ID。于數(shù)據(jù)區(qū)決(Data block)中又可分為“通道0”及“非通道0的其余通道”兩種,對應(yīng) 到的錯誤更正碼(ECC)可分成兩種形式,分別是ECCO及ECC1,其中ECCO 指定用于臨時區(qū)塊(Temp block)、通道0的數(shù)據(jù)區(qū)塊(data block)和信息 區(qū)塊(Info block)。ECCl 指定用于通道1以后的數(shù)據(jù)區(qū)塊(data block)。故讀取識別碼后就可決定 為ECCO或ECCl其中一種。請參考圖3所示,為依據(jù)本發(fā)明的實施例,當(dāng)要存取(例如寫入或讀出)多通道的 快閃存儲器之前,可經(jīng)由以下步驟對快閃存儲器控制器設(shè)定其更正比特數(shù)首先,根據(jù)數(shù)據(jù)頁面的容量及管理數(shù)據(jù)的長度決定ECCO及ECCl的長度(步驟
300),例如,在4K數(shù)據(jù)頁面的快閃存儲器內(nèi),ECCO的長度為13X8bytes,ECCl的長度為 14X8bytes ;接著,對快閃存儲器進行存取,本實施例中以讀/寫為存取動作進行說明(步驟301);然后,判斷是否為數(shù)據(jù)區(qū)塊(Data block)(步驟302),若是則執(zhí)行下一步驟(步驟 303),若否則執(zhí)行步驟304;接著,檢查目前所欲讀寫的通道是否為通道0 (步驟303),若是則設(shè)定為ECCO (步 驟304),若否則設(shè)定為ECCl ;最后,判斷是否為寫入動作(步驟305),若為寫入,則配合ECCO或ECCl填入管理 數(shù)據(jù)至空余(Spare)區(qū)域并結(jié)束寫入動作;若否,則自空余(Spare)區(qū)域讀取管理數(shù)據(jù),配 合ECCO或ECCl分析管理數(shù)據(jù)并結(jié)束讀取動作。本發(fā)明的技術(shù)在較小的數(shù)據(jù)頁面上具有相當(dāng)明顯的效果,當(dāng)應(yīng)用于大數(shù)據(jù)頁面的 快閃存儲器時,此技術(shù)更能發(fā)揮大數(shù)據(jù)頁面快閃存儲器的優(yōu)勢。相對于傳統(tǒng)固定長度錯誤 更正碼的作法,本發(fā)明針對不同通道、不同數(shù)據(jù)頁面長度的快閃存儲器搭配不同的ECC更 正設(shè)定的方法,在數(shù)據(jù)儲存的安全性上遠高于固定式的,亦不受最小數(shù)據(jù)頁面的快閃存儲 器而有限制錯誤更正碼ECC能力的問題。以上對本發(fā)明的描述是說明性的,而非限制性的,本專業(yè)技術(shù)人員理解,在權(quán)利要 求限定的精神與范圍之內(nèi)可對其進行許多修改、變化或等效,但是它們都將落入本發(fā)明的 保護范圍內(nèi)。
權(quán)利要求
1.一種應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,其特征在于,包含根據(jù)一快閃存儲器內(nèi),一數(shù)據(jù)頁面的容量及一第一管理數(shù)據(jù)的長度,在該快閃存儲器 的一第一通道中,預(yù)設(shè)定具有一第一長度的錯誤更正碼;根據(jù)該數(shù)據(jù)頁面的容量及一第二管理數(shù)據(jù)的長度,在該快閃存儲器的一第二通道中, 預(yù)設(shè)定具有一第二長度的錯誤更正碼;檢查目前所欲存取的通道是否為該第一通道;若是,則將該第一通道的錯誤更正碼長度設(shè)定為該第一長度;以及若否,則將該第二通道的錯誤更正碼長度設(shè)定為該第二長度。
2.如權(quán)利要求1所述的應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,其特征在 于,更包括下列步驟根據(jù)所儲存數(shù)據(jù)的種類,在該快閃存儲器中,設(shè)定一第一種類區(qū)塊及一第二種類區(qū)塊;其中,該第一種類區(qū)塊的錯誤更正碼長度等于該第一長度。
3.如權(quán)利要求2所述的應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,其特征在 于,位于該第一通道的該第二種類區(qū)塊的錯誤更正碼長度等于該第一長度。
4.如權(quán)利要求3所述的應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,其特征在 于,位于該第二通道的該第二種類區(qū)塊的錯誤更正碼長度等于該第二長度。
5.如權(quán)利要求1所述的應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,其特征在 于,更包括下列步驟在該第一長度的錯誤更正碼中,建立一第一識別碼;以及在該第二長度的錯誤更正碼中,建立一第二識別碼。
6.如權(quán)利要求5所述的應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,其特征在 于,該第一及該第二識別碼分別位于該第一長度及該第二長度的錯誤更正碼的最前一個比 特組或最后一個比特組。
7.如權(quán)利要求1所述的應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,其特征在 于,更包括下列步驟在通道的錯誤更正碼長度設(shè)定完成之后,根據(jù)該快閃存儲器的存取動作,若為該第一 通道,則在該第一通道中,存取該第一管理數(shù)據(jù);以及在通道的錯誤更正碼長度設(shè)定完成之后,根據(jù)該快閃存儲器的存取動作,若為該第二 通道,則在該第二通道中,存取該第二管理數(shù)據(jù)。
8.如權(quán)利要求1所述的應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,其特征在 于,該第二長度大于該第一長度。
全文摘要
本發(fā)明為一種應(yīng)用可變動錯誤更正碼容量的快閃存儲器控制方法,在快閃存儲器中的第一通道中,根據(jù)數(shù)據(jù)頁面容量及第一管理數(shù)據(jù)的長度,設(shè)定具有第一長度的錯誤更正碼;在快閃存儲器中的第二通道中,根據(jù)數(shù)據(jù)頁面容量及第二管理數(shù)據(jù)的長度,設(shè)定具有第二長度的錯誤更正碼;設(shè)定該第一長度的錯誤更正碼及第二長度的錯誤更正碼分別具有不同的識別碼,其中,第一長度小于第二長度。
文檔編號G11C29/42GK101996688SQ20091016942
公開日2011年3月30日 申請日期2009年8月31日 優(yōu)先權(quán)日2009年8月31日
發(fā)明者高龍毅 申請人:銀燦科技股份有限公司