本發(fā)明涉及高速大容量存儲(chǔ)領(lǐng)域,具體的說是一種nand-flash存儲(chǔ)陣列mapping管理方法。
背景技術(shù):
nand-flash內(nèi)存是flash內(nèi)存的一種固態(tài)大容量?jī)?nèi)存,其內(nèi)部采用非線性宏單元模式。nand-flash存儲(chǔ)器具有容量較大,改寫速度快等優(yōu)點(diǎn),適用于大量數(shù)據(jù)的存儲(chǔ),因而在業(yè)界得到了越來越廣泛的應(yīng)用,如嵌入式產(chǎn)品中包括數(shù)碼相機(jī)、mp3隨身聽記憶卡、體積小巧的u盤等。
在雷達(dá)及航天等領(lǐng)域,對(duì)存儲(chǔ)設(shè)備的容量及讀寫速率要求非??量?,單一的nandflash無法滿足要求,因此nandflash陣列顯得尤為必要。但是隨著nandflash存儲(chǔ)陣列的增加,mapping表也越來越大,如果每次更新mapping表都重新寫入的話會(huì)非常耗費(fèi)時(shí)間。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)目前技術(shù)發(fā)展的需求和不足之處,提供一種nand-flash存儲(chǔ)陣列mapping管理方法。
本發(fā)明所述nand-flash存儲(chǔ)陣列mapping管理方法,解決上述技術(shù)問題采用的技術(shù)方案如下:所述nand-flash存儲(chǔ)陣列mapping管理方法,主要通過norflash來存儲(chǔ)nandflash陣列正常使用的block塊地址,并針對(duì)nandflash陣列不同nandflash出現(xiàn)操作錯(cuò)誤對(duì)norflash進(jìn)行分別擦除更新,根據(jù)出錯(cuò)的nandflash行、列位置去擦除并更新norflash的特定位置,其主要包括:初始掃描壞塊、上電加載以及更新壞塊三個(gè)步驟。
優(yōu)選的,所述初始掃描壞塊這一步驟,主要是指,通過并行流水的方式讀取nandflash陣列中各個(gè)nandflash中的初始?jí)膲K信息,形成初始mapping表。
優(yōu)選的,在初始掃描壞塊這一步驟中,依次讀取nandflash陣列中各個(gè)nandflash中記錄出廠壞塊信息的地址數(shù)據(jù),判斷是否為出廠壞塊,形成初始的mapping表,存入norflash不同位置。
優(yōu)選的,所述上電加載這一步驟,主要是指,當(dāng)系統(tǒng)上電時(shí),依次將norflash中的mapping表信息,加載到內(nèi)部ram中以供系統(tǒng)使用。
優(yōu)選的,所述更新壞塊這一步驟,主要是指,根據(jù)nandflash陣列中操作出錯(cuò)的nandflash行、列號(hào),對(duì)norflash中記錄特定nandflashmapping表的位置進(jìn)行擦除更新。
優(yōu)選的,在更新壞塊這一步驟中,主要包括寫更新及擦更新,當(dāng)某列nandflash寫操作或擦操作失敗時(shí),根據(jù)其在norflash的存儲(chǔ)位置,對(duì)其進(jìn)行單一的擦除更新,將備用塊的block地址更新到新的mapping表中。
本發(fā)明所述nand-flash存儲(chǔ)陣列mapping管理方法,與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明針對(duì)nandflash陣列不同nandflash出現(xiàn)操作錯(cuò)誤對(duì)norflash進(jìn)行分別擦除更新,能夠減少擦除量,簡(jiǎn)化存儲(chǔ)陣列中的mapping更新速度,提高了更新速度;克服了由于nandflash存儲(chǔ)陣列的mapping表越來越大,每次更新mapping表都重新寫入非常耗時(shí)的問題。
附圖說明
附圖1為nandflash存儲(chǔ)陣列mapping管理方法的流程圖;
附圖2為norflashmapping表的存儲(chǔ)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,對(duì)本發(fā)明所述nand-flash存儲(chǔ)陣列mapping管理方法進(jìn)一步詳細(xì)說明。
本發(fā)明提供了nand-flash存儲(chǔ)陣列mapping管理方法,主要通過非易失的norflash來存儲(chǔ)nandflash陣列正常使用的block塊地址,并針對(duì)nandflash陣列不同nandflash出現(xiàn)操作錯(cuò)誤對(duì)norflash進(jìn)行分別擦除更新,并從而保證每次上電之后,nandflash可以正常工作,避免對(duì)壞塊的訪問。
實(shí)施例:
本實(shí)施例所述nand-flash存儲(chǔ)陣列mapping管理方法,根據(jù)出錯(cuò)的nandflash行、列位置去擦除并更新norflash的特定位置,其主要包括如下步驟:初始掃描壞塊、上電加載以及更新壞塊三個(gè)步驟。
所述初始掃描壞塊這一步驟,主要是指,通過并行流水的方式讀取nandflash陣列中各個(gè)nandflash中的初始?jí)膲K信息,形成初始mapping表。
在初始掃描壞塊這一步驟中,依次讀取nandflash陣列中各個(gè)nandflash中記錄出廠壞塊信息的地址數(shù)據(jù),判斷是否為出廠壞塊,形成初始的mapping表,存入norflash不同位置。
所述上電加載這一步驟,主要是指,當(dāng)系統(tǒng)上電時(shí),依次將norflash中的mapping表信息,加載到內(nèi)部ram中以供系統(tǒng)使用。
所述更新壞塊這一步驟,主要是指,根據(jù)nandflash陣列中操作出錯(cuò)的nandflash行、列號(hào),對(duì)norflash中記錄特定nandflashmapping表的位置進(jìn)行擦除更新。
在更新壞塊這一步驟中,主要包括寫更新及擦更新,當(dāng)某列nandflash寫操作或擦操作失敗時(shí),根據(jù)其在norflash的存儲(chǔ)位置,對(duì)其進(jìn)行單一的擦除更新,將備用塊的block地址更新到新的mapping表中。
當(dāng)nandflash陣列控制器對(duì)nandflash進(jìn)行寫或擦操作出現(xiàn)錯(cuò)誤時(shí),通過將nandflash所處的行、列信息加以報(bào)告,實(shí)現(xiàn)對(duì)norflash特定位置的nandflashmapping表更新,從而減少norflash擦除時(shí)間,能夠提高更新速度。
附圖1為nandflash存儲(chǔ)陣列mapping管理方法的流程圖,如附圖1所示,該nandflash存儲(chǔ)陣列mapping管理方法的具體實(shí)現(xiàn)過程如下:
第一,首先上電系統(tǒng)讀取norflash中記錄是否已進(jìn)行初始掃描的標(biāo)志,如aa;
第二,若已經(jīng)掃過初始?jí)膲K,則進(jìn)行上電加載操作,依次讀取norflash中的mapping表信息到系統(tǒng)內(nèi)部ram;
第三,若未檢測(cè)過初始?jí)膲K,則依次讀取nandflash陣列中各個(gè)nandflash固有的記錄初始?jí)膲K信息位置,形成初始mapping表存入norflash中;
第四,當(dāng)nandflash陣列進(jìn)行寫操作或擦除操作出現(xiàn)問題時(shí),根據(jù)nandflash陣列中的行、列號(hào)對(duì)norflash中的記錄特定nandflashmapping表的位置進(jìn)行擦除更新操作。
附圖2為norflashmapping表的存儲(chǔ)示意圖,如附圖2所示,其中各個(gè)信息都位于norflash不同的subsector中,比如:subsector0用于是否掃描壞塊標(biāo)志,subsector1用于nandflash1mapping表,……,subsectorn-1用于nandflashn-1mapping表,subsectorn用于nandflashnmapping表;可以根據(jù)nandflash行、列號(hào)進(jìn)行分別擦除更新。
上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。