延長Flash存儲(chǔ)囂使用壽命的研究
3 Flash存儲(chǔ)器的讀取方法
K9F11208UOM型Flash芯片內(nèi)部與外部引腳關(guān)系如圖2所示。對于每一個(gè)塊的訪問,都需要一個(gè)固定的物理地址,基于這個(gè)固定的物理地址來操作Flash存儲(chǔ)器,在對塊進(jìn)行操作的時(shí)候,一個(gè)塊地址對應(yīng)一個(gè)塊,如果這個(gè)塊壞了,那么這個(gè)地址的存在就沒有意義了。就像ARM芯片在引導(dǎo)的時(shí)候,需要復(fù)制Flash的前4 KB的數(shù)據(jù),這樣需要固定塊的數(shù)據(jù)。如果這個(gè)塊壞了,系統(tǒng)將無法引導(dǎo)。本文引用地址:http://www.biyoush.com/article/152233.htm
下面通過地址重映射的方法,即在Flash固件里面加入一個(gè)地址重映射的區(qū)域來解決這一問題。
4 基于地址重映射的讀取方法
在實(shí)現(xiàn)地址重映射的時(shí)候,可以從塊邏輯地址O開始,查看相對應(yīng)的物理塊。如果損壞,將地址從最后一個(gè)開始向前指,而相應(yīng)的邏輯塊被標(biāo)示為壞塊。例如圖3,物理塊0損壞,邏輯塊地址0指向物理塊4095的地址,而邏輯塊地址4095被標(biāo)示為壞塊??梢钥闯?,即使塊0摜壞,仍然可以通過邏輯地址O進(jìn)行操作,其內(nèi)部的變化,并不會(huì)影響外部的使用。唯一不同的是,F(xiàn)lash的整體空間變小了。不過即使這樣,也不會(huì)像以前那樣,第一塊壞了,就去換一個(gè)Flash。
5 性能分析
很明顯,在數(shù)據(jù)讀取的時(shí)候增加了一步地址重映射的計(jì)算。這樣使整體性能會(huì)略微下降。下面分析一下加入地址重映射之后的性能影響(這里僅僅分析數(shù)據(jù)的讀取性能,因?yàn)閷lash操作最多的是數(shù)據(jù)的讀取,用戶使用時(shí)也是讀取最多)。
地址重映射是根據(jù)輸入的地址計(jì)算操作地址的。從圖4可以看出,地址重映射的計(jì)算是加在地址A25輸入之后的,因其在內(nèi)部操作,延時(shí)相對很小。而這個(gè)地址重映射在整個(gè)塊操作之中只操作一次,且其使用時(shí)間很短,故在這里可以忽略不計(jì),其對數(shù)據(jù)的讀取操作基本沒有影響。
加入地址重映射之后,壞塊全部集中到了整個(gè)Flash設(shè)備的最后。也就是說,即使這個(gè)Flash中有1024個(gè)塊壞了,仍然可以當(dāng)其為一個(gè)32 MB的Flash來使用,即其有效塊為第0~1 023塊;不像前面所描述的那樣,就算只有第一個(gè)塊壞了,這個(gè)Flash也就報(bào)廢了。經(jīng)過加入地址重映射之后的Flash,即使就剩下一塊沒有損壞的塊了,這個(gè)Flash仍然可以作為引導(dǎo)系統(tǒng)使用。
6 結(jié) 論
通過在Flash內(nèi)部加入地址重映射機(jī)制,對于使用Flash將會(huì)有很大的方便,并且,即使第一個(gè)塊壞了,仍可以繼續(xù)使用這個(gè)Flash,而無需廠家保證第一個(gè)塊是好的。這樣大大延長了Flash的使用壽命,僅僅在壞塊達(dá)到一定數(shù)量的時(shí)候才需要換一個(gè)。
評論