欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種對nandflash存儲器進(jìn)行虛擬空間管理的方法

文檔序號:6557842閱讀:220來源:國知局
專利名稱:一種對nand flash存儲器進(jìn)行虛擬空間管理的方法
技術(shù)領(lǐng)域
本發(fā)明涉及閃存存儲器的技術(shù)領(lǐng)域,具體涉及到對NAND FLASH閃存存儲器的物理塊建立邏輯映射表來進(jìn)行虛擬空間管理的方法。
背景技術(shù)
目前,隨著科學(xué)技術(shù)的發(fā)展,更多、更好的存儲介質(zhì)被研發(fā)出來,使我們的生活發(fā)生著日新月異的變化。這些變化給移動通訊終端提供了更多的選擇,更好的性能。存儲器訪問速度的提高以及存儲空間的不斷擴(kuò)大,也使移動通訊終端具有更好的多媒體功能。為了得到更多的存儲空間,并且價格更加便宜,NAND FLASH存儲器應(yīng)運(yùn)而生。NAND FLASH存儲器與NORFLASH存儲器同屬于閃存存儲器,但是NAND FLASH存儲器在移動通訊終端的大容量存儲中有著更好的性能價格比,正在迅速的替代NOR存儲器的地位。下面簡單列舉一下NAND FLASH和NORFLASH兩種存儲器的區(qū)別。
NOR FLASH可以進(jìn)行讀寫,能夠ACCESS,也就是說,它上面存儲的內(nèi)容可以被執(zhí)行。擦除方式按照block方式,寫入方式按照word寫入,永不損壞。
NAND FLASH在低廉價格的前提下,可以使存儲空間變得很大。NAND FLASH存儲器可以進(jìn)行讀寫,但是不能夠ACCESS,也就是說,它上面存儲的內(nèi)容只能被裝入到內(nèi)存中才能夠被執(zhí)行。擦除方式按照block方式,寫入方式按照page方式,一次必須寫入一個page。
NAND FLASH存儲器除了第一塊block能夠保證永不損壞外,其他的塊均存在壞掉的可能性。一般來說,一個block有固定個字節(jié),但是,這僅僅是尋址空間可以看到的地方,其實(shí)每一個block在最后還有一部分空間即備用區(qū)域是看不到的,它用來標(biāo)示本塊block是否已經(jīng)損壞,防止讀寫時使用該壞塊。
由于NAND FLASH存儲器會隨機(jī)地出現(xiàn)壞塊,目前對壞塊的處理,一般采用跳過該壞塊的方法。即燒寫FLASH時,發(fā)現(xiàn)某一塊壞掉,終端燒寫程序或者BOOT LOADER程序僅僅是跳到下一個可用塊進(jìn)行讀寫操作,這里的BOOT LOADER就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。
目前采取的這種跳過壞塊的方法存在的缺點(diǎn)如下,由于壞塊的存在,將本來應(yīng)該寫到某一地址的內(nèi)容寫到了下一個block,使得程序IMAGE(編譯后的可執(zhí)行程序影像文件)與燒寫到NAND FLASH存儲器里面的內(nèi)容不能一一對應(yīng),即從整個NAND FLASH來看,存在許多“空洞”。然而隨著移動通訊終端能力變得越來越強(qiáng)大,一些應(yīng)用程序必須到指定地址去尋找內(nèi)容,比如說某些應(yīng)用要求讀取地址0X00A00000的內(nèi)容,這個地址是對應(yīng)著NAND FLASH的第1塊,而第1塊恰好是壞塊,這里地址0X00A00000內(nèi)容被如上所說的跳過壞塊的機(jī)制燒寫到后面的某個塊J中去了。因此,移動通訊終端的所有應(yīng)用程序都必須有跳過壞塊的處理機(jī)制,程序模塊之間需要協(xié)作,這就使得終端程序做的很復(fù)雜。如隨著3G的來臨,F(xiàn)OTA(移動終端空中下載軟件升級)功能又成為運(yùn)營商必選的內(nèi)容,需要終端程序能夠在空中更新并且能夠平滑的進(jìn)行程序執(zhí)行,這樣,目前的壞塊跳過的處理辦法就難以滿足3G終端的要求。

發(fā)明內(nèi)容
本發(fā)明的目的就是提供一種對NAND FLASH存儲器進(jìn)行邏輯塊虛擬空間管理的辦法,通過該辦法,能夠屏蔽NAND FLASH存儲器中的物理壞塊,向上層應(yīng)用軟件模塊提供統(tǒng)一的、連續(xù)的、可用的存儲介質(zhì)的操作方法??朔藗鹘y(tǒng)的壞塊跳過處理辦法帶來的終端程序復(fù)雜性的問題,能夠簡單快捷地解決終端程序下載和存儲到存儲器中的情況。
本發(fā)明包括以下步驟1)初始化NAND FLASH存儲器,檢測所有物理壞塊;2)建立映射表,把虛擬的連續(xù)可用的邏輯塊映射到非連續(xù)的可用物理塊上,并把映射表存儲到虛擬空間管理模塊中;3)每個應(yīng)用單元通過虛擬空間管理模塊訪問NAND FLASH存儲器;4)虛擬空間管理模塊找到邏輯塊對應(yīng)的物理塊,進(jìn)行讀、寫和擦除操作。
在NAND FLASH的頻繁操作使用過程中,也有可能產(chǎn)生壞塊,因此對NAND FLASH存儲器進(jìn)行虛擬空間管理的方法,還包括以下步驟5)NAND FLASH存儲器的物理塊在讀、寫和擦除操作中出現(xiàn)錯誤,識別為壞塊;6)把邏輯塊映射到一個可用且為空的物理塊上,并把新的映射表存儲到虛擬空間管理模塊中;7)邏輯塊不變,重新找到新對應(yīng)物理塊,再次進(jìn)行讀、寫和擦除操作。
在所述的映射表中,邏輯空間0塊映射到物理空間0塊,邏輯空間第N塊映射到物理空間從第N塊包括第N塊開始的第一個可用的物理塊,N大于等于1。即邏輯空間1塊映射到物理空間時,如果物理空間第1塊可用,則映射到物理空間第1塊,如果物理空間第1塊是壞塊,則繼續(xù)向下尋找直到可用的物理塊。
NAND FLASH存儲器中劃出一部分作為預(yù)留存儲區(qū)域,用于物理塊在讀寫操作出現(xiàn)損壞時重新映射的存儲物理塊。
NAND FLASH存儲器提供統(tǒng)一的讀寫控制接口,非同時運(yùn)行的每個應(yīng)用單元調(diào)用連續(xù)可用的NAND FLASH存儲器邏輯塊。采用NAND flash存儲器作為數(shù)據(jù)存儲裝置的產(chǎn)品有手機(jī)、MP3、U盤、數(shù)碼相機(jī)和PDA。
通過本發(fā)明,上層應(yīng)用軟件單元就可用把下層實(shí)際存在物理壞塊的NAND FLASH存儲器映射成統(tǒng)一的、連續(xù)的、可用的線性存儲介質(zhì),上層應(yīng)用軟件軟件這樣就完全可以透明地去進(jìn)行對NAND FLASH存儲器的邏輯空間進(jìn)行讀取存儲操作,而不必在各種應(yīng)用軟件單元中考慮復(fù)雜的壞塊跳過問題了,本發(fā)明通過統(tǒng)一的讀寫控制接口,能夠簡單快捷地解決手機(jī)終端程序下載和存儲。


圖1是存儲器內(nèi)邏輯塊和物理塊的映射關(guān)系示意圖;圖2是運(yùn)行應(yīng)用出現(xiàn)壞塊時,存儲器邏輯塊和物理塊的映射關(guān)系示意圖;圖3是虛擬空間管理流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明做進(jìn)一步的說明。
如圖1所示,虛擬內(nèi)存管理模塊中邏輯塊和物理塊的映射關(guān)系,是每一個邏輯塊按照順序映射到實(shí)際的物理塊上,如果對應(yīng)的物理塊壞了,則映射到下一個物理塊上,然后建立起一個映射表。例如在NAND FLASH存儲器中存在壞塊5、6、11等等。這樣我們的邏輯地址的對應(yīng)關(guān)系就會像下面這樣,邏輯0對應(yīng)物理0;邏輯1對應(yīng)物理1;邏輯2對應(yīng)物理2;邏輯3對應(yīng)物理3;邏輯4對應(yīng)物理4;邏輯5對應(yīng)物理7;邏輯6對應(yīng)物理8;邏輯N對應(yīng)物理M。其中物理0塊是保證不會壞掉的,而其他的物理塊有會出現(xiàn)壞塊的可能性,壞塊分為兩種,一種存儲器生產(chǎn)出來后就存在的初始壞塊,另一種是存儲器的運(yùn)行過程中出現(xiàn)的隨機(jī)產(chǎn)生的壞塊。
建立起NAND FLASH壞塊映射表,并把邏輯塊與實(shí)際物理塊的映射關(guān)系以映射表的形式存儲在NAND FLASH的固定位置上。這樣就能夠向上層應(yīng)用提供統(tǒng)一的NAND FLASH讀寫控制接口,并向上層應(yīng)用提供連續(xù)的邏輯地址空間。上層應(yīng)用程序通過這些接口對NAND FLASH進(jìn)行讀寫操作,在使用這些接口時,不必考慮NAND FLASH中實(shí)際壞塊的存在,只是假定下層整個NAND FLASH是連續(xù)可用的。
初始壞塊的檢測,用燒寫工具把相應(yīng)IMAGE寫到手機(jī)的NAND FLASH后,手機(jī)第一次開機(jī)BOOT LOADER運(yùn)行時,BOOT LOADER中的邏輯空間管理模塊部分啟動并檢測NAND FLASH的固定區(qū)域,該固定區(qū)域不在動態(tài)FLASH管理區(qū)域,即該區(qū)域不需要進(jìn)行映射,這時映射表不存在。然后掃描NADN FLASH存儲器,識別壞塊,建立起邏輯空間與物理空間的映射表。
映射表的建立算法為如果實(shí)際的NAND FLASH第N塊壞,則邏輯FLASH空間第N塊對應(yīng)的就是從邏輯FLASH空間第N-1塊對應(yīng)的實(shí)際可用物理塊開始的下一個可用的物理塊。即如果邏輯空間的第N-1塊,映射到實(shí)際物理塊的M塊,則邏輯空間的第N塊映射到從M+1(包括M+1)開始的第一個可用物理塊。這里N大于等于1;N=0時邏輯第0塊,對應(yīng)的實(shí)際的物理地址第0塊,因?yàn)镹AND FLASH保證第0塊是可用的。
建成該映射關(guān)系之后(包括以后的手機(jī)開機(jī))把該映射表保存到相應(yīng)的固定區(qū)域。BOOTLOADER檢測到相應(yīng)的固定區(qū)域存在該映射表,根據(jù)映射表的映射關(guān)系,直接通過邏輯內(nèi)存管理模塊的相關(guān)讀取接口線性連續(xù)的讀取IMAGE加載到ram空間去運(yùn)行(從第一塊到第N塊,連續(xù)線性)。到此時映射關(guān)系表依然如圖1所示,之后的手機(jī)生命周期內(nèi)那些更新NAND FLASH的應(yīng)用軟件可能會改變這種映射關(guān)系。
當(dāng)FOTA等應(yīng)用進(jìn)行NAND FLASH的更新操作時,NAND FLASH這個時候也可能產(chǎn)生壞塊。比如在進(jìn)行某次FOTA前,映射關(guān)系如圖1;當(dāng)FOTA要求更新第5塊,此時根據(jù)圖1的映射關(guān)系,實(shí)際上是更新NAND FLASH的第7塊,此時擦除第7塊時,該塊壞掉。
如圖2所示,即FOTA過程中產(chǎn)生了新壞塊的情況,這里沒有辦法把邏輯的第5塊去映射到實(shí)際的NAND FLASH第8塊,因?yàn)镹AND FLASH的第8塊是邏輯第6塊的內(nèi)容。于是把邏輯第5塊映射到存儲器預(yù)留區(qū)域的某個塊內(nèi),這時把它映射到預(yù)留區(qū)域的下一個可用塊K,然后修改映射表。
以下對預(yù)留區(qū)域做一下描述。預(yù)留區(qū)域是從NAND FLASH中保留的一塊區(qū)域,一般來說,預(yù)留區(qū)域放置在NAND FLASH的末尾部分,該區(qū)域依然可能存在壞塊,邏輯空間管理模塊管理著該區(qū)域的下一個可用塊NextAvailableBlock。當(dāng)FOTA等模塊需要從預(yù)留區(qū)域取可用塊映射到邏輯空間時,就可以把塊NextAvai lableBlock映射到邏輯空間,然后查找從該塊開始下一個可用的塊重新標(biāo)記為NextAvailableBlock,以備下次FOTA等模塊應(yīng)用產(chǎn)生壞塊時,就可以用該塊映射。
如圖3所示,虛擬空間管理流程是先進(jìn)行步驟301,初始化NAND FLASH存儲器,檢測所有物理壞塊;步驟302,建立映射表,把虛擬的連續(xù)可用的邏輯塊映射到非連續(xù)的可用物理塊上,并把映射表存儲到虛擬空間管理模塊中;步驟303,主程序運(yùn)行,將空間管理模塊存儲區(qū)中的內(nèi)容load到ram中;步驟304,每個應(yīng)用單元通過虛擬空間管理模塊訪問NAND FLASH存儲器,虛擬空間管理模塊找到邏輯塊對應(yīng)的物理塊,進(jìn)行讀、寫和擦除操作;步驟305,可以順利進(jìn)行操作;步驟306,如果NAND FLASH存儲器的物理塊在讀、寫和擦除操作中出現(xiàn)錯誤,識別為壞塊,把邏輯塊映射到一個可用且為空的物理塊上,并把新的映射表存儲到虛擬空間管理模塊中,邏輯塊不變,重新找到新對應(yīng)物理塊,再次進(jìn)行讀、寫和擦除操作直到操作成功。
比如上層應(yīng)用程序需要讀取、擦除或者寫入數(shù)據(jù)到第blocknum_M塊,這時只需要使用邏輯地址空間調(diào)用響應(yīng)的函數(shù)接口如ReadBlock(blocknum_M,buffer);EraseBlock(blocknum_M);WriteBlock(blocknum_M,buffer);這里的第blocknum_M塊是存儲器中的邏輯塊,而不需要關(guān)心下層NAND FLASH的第blocknum_M塊具體的物理塊是壞塊還是可用塊。邏輯空間管理模塊進(jìn)行相應(yīng)的算法運(yùn)算,把上層應(yīng)用的操作要求從NAND FLASH連續(xù)的邏輯塊映射到相應(yīng)的物理塊,完成上層要求的操作。
本發(fā)明通過統(tǒng)一的讀寫控制接口,把下層實(shí)際存在物理壞塊的NAND FLASH存儲器映射成統(tǒng)一的、連續(xù)的、可用的線性存儲介質(zhì),上層應(yīng)用軟件軟件可以透明地去進(jìn)行對NAND FLASH存儲器的邏輯空間進(jìn)行讀取存儲操作,而不必再考慮復(fù)雜的壞塊跳過問題了,應(yīng)用虛擬空間管理模塊能夠簡單快捷地解決手機(jī)終端程序下載和存儲。
權(quán)利要求
1.一種對NAND FLASH存儲器進(jìn)行虛擬空間管理的方法,其特征在于包括以下步驟1)初始化NAND FLASH存儲器,檢測所有物理壞塊;2)建立映射表,把虛擬的連續(xù)可用的邏輯塊映射到非連續(xù)的可用物理塊上,并把映射表存儲到虛擬空間管理模塊中;3)每個應(yīng)用單元通過虛擬空間管理模塊訪問NAND FLASH存儲器;4)虛擬空間管理模塊找到邏輯塊對應(yīng)的物理塊,進(jìn)行讀、寫和擦除操作。
2.根據(jù)權(quán)利要求1所述的對NAND FLASH存儲器進(jìn)行虛擬空間管理的方法,其特征在于還包括以下步驟5)NAND FLASH存儲器的物理塊在讀、寫和擦除操作中出現(xiàn)錯誤,識別為壞塊;6)把邏輯塊映射到一個可用且為空的物理塊上,并把新的映射表存儲到虛擬空間管理模塊中;7)邏輯塊不變,重新找到新對應(yīng)物理塊,再次進(jìn)行讀、寫和擦除操作。
3.根據(jù)權(quán)利要求1所述的對NAND FLASH存儲器進(jìn)行虛擬空間管理的方法,其特征在于所述的映射表中,邏輯空間0塊映射到物理空間0塊,邏輯空間第N塊映射到物理空間從第N塊包括第N塊開始的第一個可用的物理塊,N大于等于1。
4.根據(jù)權(quán)利要求1或2所述的對NAND FLASH存儲器進(jìn)行虛擬空間管理的方法,其特征在于NAND FLASH存儲器提供統(tǒng)一的讀寫控制接口,非同時運(yùn)行的每個應(yīng)用單元調(diào)用連續(xù)可用的NAND FLASH存儲器邏輯塊。
5.根據(jù)權(quán)利要求1至3中任一個權(quán)利要求所述的對NAND FLASH存儲器進(jìn)行虛擬空間管理的方法,其特征在于NAND FLASH存儲器中劃出一部分作為預(yù)留存儲區(qū)域,用于物理塊在讀寫操作出現(xiàn)損壞時重新映射的存儲物理塊。
6.根據(jù)權(quán)利要求1至3中任一個權(quán)利要求所述的對NAND FLASH存儲器進(jìn)行虛擬空間管理的方法,其特征在于采用NAND flash存儲器作為數(shù)據(jù)存儲裝置的產(chǎn)品有手機(jī)、MP3、U盤、數(shù)碼相機(jī)和PDA。
全文摘要
一種對NAND flash存儲器進(jìn)行虛擬空間管理的方法,建立映射表,把虛擬的連續(xù)可用的邏輯塊映射到非連續(xù)的可用物理塊上,并把映射表存儲到虛擬空間管理模塊中,可以將不相關(guān)的各個程序模塊的壞塊處理部分省略,使它們只能夠看到好用的邏輯塊,而邏輯空間管理模塊提供相應(yīng)的壞塊映射機(jī)制和根據(jù)邏輯塊號找到對應(yīng)的物理塊號的功能,通過本方法,手機(jī)終端中很多軟件模塊可以避免重復(fù)考慮壞塊處理問題,也避免了不能同時運(yùn)行的兩個終端程序在遇到都能訪問的壞塊時的復(fù)雜處理。
文檔編號G06F12/02GK1932778SQ20061006970
公開日2007年3月21日 申請日期2006年7月23日 優(yōu)先權(quán)日2006年7月23日
發(fā)明者劉剛, 唐尊良 申請人:海信集團(tuán)有限公司, 青島海信移動通信技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
樟树市| 红桥区| 勃利县| 成都市| 五莲县| 通山县| 朝阳区| 恩平市| 迭部县| 南涧| 扬州市| 南召县| 开阳县| 界首市| 衡山县| 嘉善县| 浙江省| 三原县| 新郑市| 通海县| 丰城市| 葵青区| 平顶山市| 吕梁市| 静宁县| 太仆寺旗| 柳河县| 绩溪县| 屏南县| 黄梅县| 祁东县| 天门市| 东乡县| 林口县| 锡林浩特市| 苏尼特左旗| 邢台县| 东辽县| 武宣县| 渭源县| 重庆市|