基于多通道主控的多CENANDFlash動態(tài)塊模型及壞塊處理方法技術(shù)領(lǐng)域本發(fā)明涉及一種基于多通道主控的多CENANDFlash動態(tài)塊模型及壞塊處理方法。
背景技術(shù):針對現(xiàn)在存儲介質(zhì)越來越大的空間需求與速度需求,多通道主控與多CE的存儲介質(zhì)的出現(xiàn)是時代的必然,這也對存儲介質(zhì)的壞塊管理帶來了負(fù)擔(dān),目前的壞塊管理在塊模型的建設(shè)中都是靜態(tài)的,并且對多通道與多CE的支持不是特別友好。如果在存儲介質(zhì)的使用過程中出現(xiàn)新的壞塊,只能舍棄該壞塊所在的LBT塊模型,那么靜態(tài)的塊模型將不再管用。
技術(shù)實現(xiàn)要素:本發(fā)明所要解決的技術(shù)問題是,針對現(xiàn)有技術(shù)不足,提供一種基于多通道主控的多CENANDFlash動態(tài)塊模型及壞塊處理方法。為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:一種基于多通道主控的多CENANDFlash動態(tài)塊模型,包括多個通道、多個LBT塊模型,每個通道包括多個片選通道;每個LBT塊模型包括多個物理塊;多個LBT塊模型排列為多行;每個片選通道對應(yīng)一列物理塊,且該列物理塊為多個LBT塊模型相同位置的物理塊。本發(fā)明還提供了一種利用上述模型處理壞塊的方法,當(dāng)?shù)趎-1個通道的第i-1個片選通道在第m-1個LBT塊模型中出現(xiàn)壞塊的時候,將第n個通道的第i個片選通道在第m個LBT塊模型中的非壞塊向上移動到第n-1個通道的第i-1個片選通道的第m-1個LBT塊模型中,保證第m-1個LBT塊模型的完整性,依此類推,繼續(xù)處理其余壞塊,直至處理完所有的壞塊;對于最后一個LBT塊模型中剩余的物理塊,若滿足容量優(yōu)先,則將該剩余的物理塊集合起來建立一個新的靜態(tài)塊模型;若滿足性能優(yōu)先,則對于剩余的物理塊,擱置不用。本發(fā)明中,處理完所有壞塊的判斷標(biāo)準(zhǔn)為:LBT塊模型個數(shù)的最大值LBT_max=PB_max-PB_bad;其中,PB_max為一個片選通道下的物理塊的最大數(shù)量,PB_bad為該片選通道下的壞塊個數(shù)。保證所有壞塊都處理完,進(jìn)一步保證動模型的有效性。與現(xiàn)有技術(shù)相比,本發(fā)明所具有的有益效果為:本發(fā)明將分散在不同通道不同CE下的NANDFlash的物理塊組合在了一起,操作的時候只需要調(diào)用LBT表就可以操作物理塊,降低了多通道多CE操作的復(fù)雜度,可以更加高效、方便地進(jìn)行壞塊管理。在存儲設(shè)備(如SSD、U盤等)中可以得到很好的應(yīng)用。附圖說明圖1為本發(fā)明實施例沒有壞塊的塊模型示意圖;圖2為本發(fā)明實施例有壞塊的塊模型示意圖。具體實施方式本發(fā)明實施例圖1和圖2中,兩圖都是以4通道主控,4CENANDFlash為基礎(chǔ)建立的塊模型;最左邊的LBT(LogicBlockTable)表示多通道多LBT塊模型;每一行LBT塊模型內(nèi)的所有PB(物理塊)表示同一塊模型;圖2中的PB0,PB2,PB4表示壞塊;CH0、CH1、CH2、CH3為四個通道,CE0、CE1、CE2、CE3為片選通道。如圖1所示,本發(fā)明中,在沒有壞塊的情況下,多通道下的多CE的PB0共同組成LBT0,多通道下的多CE的PB1共同組成LBT1,以此類推,多通道下的多CE的PBn共同組成LBTn。當(dāng)出現(xiàn)壞塊的時候,LBT會根據(jù)壞塊的分布,而動態(tài)的調(diào)整塊模型。調(diào)整的基本原則是保證一份LBT的完整性,即LBT包含的物理塊個數(shù)需要保持恒定。本發(fā)明實施例中,每個LBT需要保證16個物理塊。圖2所示,當(dāng)通道1的CE1在LBT0出現(xiàn)壞塊(PB0)的時候,塊模型會自動向下取塊,進(jìn)而保證LBT個數(shù)的完整性。所以LBT0包含的塊由16個PB0變成了15個PB0和一個PB1(如圖2所示)。所以其他LBT都需要做出調(diào)整,并且LBT的最大值等于一個CE下的PB最大值減去同一CE下的壞塊個數(shù),LBT_max=PB_max-PB_bad對于在湊齊了完整的LBT_max以后剩余的塊,一般不夠一個LBT,有兩種處理方式。如果是容量優(yōu)先,就需要利用起剩余的塊,由于不在一個完整的LBT內(nèi),所以需要單獨操作,這樣會降低一定的性能。具體的操作方式為將剩下的不足一個LBT的塊集合起來建立一個另外的一個LBT模型,這里叫它Other_LBT,即將剩下的塊都映射到Other_LBT里面,這樣所有的塊都可以用完,保證了容量。如果是性能優(yōu)先,對于剩余的塊,可以擱置不用。