管理固態(tài)硬盤的地址映射表的方法、裝置及固態(tài)硬盤的制作方法
【專利摘要】本發(fā)明公開了管理固態(tài)硬盤的地址映射表的方法,包括:載入并初始化bitmap表;監(jiān)測地址映射表頁,確定被修改的地址映射表頁;判斷被修改的地址映射表頁是否寫入Flash中;若是,將被修改的地址映射表頁在bitmap表中對應(yīng)的位的值設(shè)置為已保存值;若否,將被修改的地址映射表頁在bitmap表中對應(yīng)的位的值設(shè)置為未保存值;該方法能夠根據(jù)bitmap表中的位的值可以確定被修改過的地址映射表頁,這樣可以保證系統(tǒng)掉電或者恢復(fù)時,可以準(zhǔn)確的將修改過的地址映射表頁進(jìn)行保存和同步,從而保證地址映射表的完整性和數(shù)據(jù)的同步;本發(fā)明還公開了管理固態(tài)硬盤的地址映射表的裝置及固態(tài)硬盤,具有上述效果。
【專利說明】
管理固態(tài)硬盤的地址映射表的方法、裝置及固態(tài)硬盤
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及電子技術(shù)領(lǐng)域,特別涉及一種管理固態(tài)硬盤的地址映射表的方法、裝置及固態(tài)硬盤。
【背景技術(shù)】
[0002]目前大容量的固態(tài)硬盤為了提高效率一般采用全頁面映射的方法,但此方法會使地址映射表巨大,占用很大的內(nèi)存空間。在系統(tǒng)突然掉電的情況下,很難在系統(tǒng)板載電容的支持下把整個固態(tài)硬盤的地址映射表完整的刷新到Flash中,這樣會導(dǎo)致被修改的映射表項丟失,即使在系統(tǒng)上電時也無法將丟失的映射表項恢復(fù),這樣會導(dǎo)致系統(tǒng)數(shù)據(jù)的不一致,嚴(yán)重可能導(dǎo)致系統(tǒng)無法啟動。并且系統(tǒng)再次啟動時,為了保證數(shù)據(jù)的一致性,系統(tǒng)需要重構(gòu)固態(tài)盤的地址轉(zhuǎn)換表;通常需要從頭掃描固態(tài)硬盤的物理頁,導(dǎo)致系統(tǒng)啟動緩慢。
[0003]因此,如何確保被修改的頁面在系統(tǒng)突然掉電的情況下可以被快速的刷新到Flash存儲器中,進(jìn)一步在系統(tǒng)啟動重構(gòu)地址映射表時減少掃描頁面的數(shù)量,加快系統(tǒng)啟動速度,是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種管理固態(tài)硬盤的地址映射表的方法、裝置及固態(tài)硬盤,能夠根據(jù)bitmap表中的位的值可以確定被修改過的地址映射表頁,以保證系統(tǒng)掉電或者恢復(fù)時,可以準(zhǔn)確的將修改過的地址映射表頁進(jìn)行保存和同步,從而保證地址映射表的完整性和數(shù)據(jù)的同步。
[0005]為解決上述技術(shù)問題,本發(fā)明提供一種管理固態(tài)硬盤的地址映射表的方法,包括:
[0006]載入并初始化bitmap表;其中,地址映射表頁與所述bitmap表中的位--對應(yīng);
[0007]監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁;
[0008]判斷所述被修改的地址映射表頁是否寫入Flash中;
[0009]若是,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為已保存值;
[0010]若否,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為未保存值。
[0011]其中,所述bitmap表的構(gòu)建方法,包括:
[0012]將地址映射表按照設(shè)定每頁內(nèi)存值進(jìn)行分頁,形成地址映射表頁;
[0013]將每一頁所述地址映射表頁與初始bitmap表中的對應(yīng)位建立映射關(guān)系,形成bitmap 表。
[0014]其中,監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁之后,還包括:
[0015]判斷所述被修改的地址映射表頁是否在所述bitmap表的映射范圍內(nèi);
[0016]若不在,則提示出錯并重新計算。
[0017]其中,在系統(tǒng)掉電后,還包括:[ΟΟ? 8]掃描所述bi tmap表,確定所述bi tmap表中位的值為未保存值所對應(yīng)的地址映射表頁;
[ΟΟ?9] 將所述所對應(yīng)的地址映射表頁保存到Flash中,并將所述bitmap表同步到Flash中。
[0020]其中,在系統(tǒng)重新啟動后,還包括:
[0021 ] 載入同步到Flash中的所述bitmap表;
[0022]掃描所述bitmap表,重構(gòu)所述bitmap表中位的值為未保存值所對應(yīng)的地址映射表頁。
[0023]本發(fā)明還提供一種管理固態(tài)硬盤的地址映射表的裝置,包括:
[0024]初始化模塊,用于載入并初始化bitmap表;其中,地址映射表頁與所述bitmap表中的位——對應(yīng);
[0025]監(jiān)測模塊,用于監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁;
[0026]第一判斷模塊,用于判斷所述被修改的地址映射表頁是否寫入Flash中;
[0027]修改模塊,用于若是,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為已保存值;若否,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為未保存值。
[0028]其中,還包括:
[0029]第二判斷模塊,用于判斷所述被修改的地址映射表頁是否在所述bitmap表的映射范圍內(nèi);
[0030]提示模塊,用于若不在,則提示出錯并重新計算。
[0031]其中,還包括:
[°032 ]掃描模塊,用于在系統(tǒng)掉電后掃描所述b i tmap表,確定所述b i tmap表中位的值為未保存值所對應(yīng)的地址映射表頁;
[0033]同步保存模塊,用于將所述所對應(yīng)的地址映射表頁保存到Flash中,并將所述bitmap表同步到Flash中。
[0034]其中,還包括:
[0035]載入模塊,用于在系統(tǒng)重新啟動后載入同步到Flash中的所述bitmap表;
[0036]重構(gòu)模塊,用于掃描所述bi tmap表,重構(gòu)所述b i tmap表中位的值為未保存值所對應(yīng)的地址映射表頁。
[0037]本發(fā)明還提供一種固態(tài)硬盤,包括:上述任一項所述的管理固態(tài)硬盤的地址映射表的裝置。
[0038]本發(fā)明所提供的管理固態(tài)硬盤的地址映射表的方法,包括:載入并初始化bitmap表;監(jiān)測地址映射表頁,確定被修改的地址映射表頁;判斷被修改的地址映射表頁是否寫入Flash中;若是,將被修改的地址映射表頁在bitmap表中對應(yīng)的位的值設(shè)置為已保存值;若否,將被修改的地址映射表頁在bitmap表中對應(yīng)的位的值設(shè)置為未保存值;
[0039]可見,該方法能夠根據(jù)bitmap表中的位的值可以確定被修改過的地址映射表頁,這樣可以保證系統(tǒng)掉電或者恢復(fù)時,可以準(zhǔn)確的將修改過的地址映射表頁進(jìn)行保存和同步,從而保證地址映射表的完整性和數(shù)據(jù)的同步;本發(fā)明還公開了管理固態(tài)硬盤的地址映射表的裝置及固態(tài)硬盤,具有上述效果,在此不再贅述。
【附圖說明】
[0040]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0041]圖1為本發(fā)明實施例所提供的管理固態(tài)硬盤的地址映射表的方法的流程圖;
[0042]圖2為本發(fā)明實施例所提供的bitmap表與地址映射表頁的映射關(guān)系示意圖;
[0043]圖3為本發(fā)明實施例所提供的管理固態(tài)硬盤的地址映射表的裝置的結(jié)構(gòu)框圖;
[0044]圖4為本發(fā)明實施例所提供的另一管理固態(tài)硬盤的地址映射表的裝置的結(jié)構(gòu)框圖;
[0045]圖5為本發(fā)明實施例所提供的又一管理固態(tài)硬盤的地址映射表的裝置的結(jié)構(gòu)框圖。
【具體實施方式】
[0046]本發(fā)明的核心是提供一種管理固態(tài)硬盤的地址映射表的方法、裝置及固態(tài)硬盤,能夠根據(jù)bitmap表中的位的值可以確定被修改過的地址映射表頁,以保證系統(tǒng)掉電或者恢復(fù)時,可以準(zhǔn)確的將修改過的地址映射表頁進(jìn)行保存和同步,從而保證地址映射表的完整性和數(shù)據(jù)的同步。
[0047]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0048]請參考圖1,圖1為本發(fā)明實施例所提供的管理固態(tài)硬盤的地址映射表的方法的流程圖;該方法可以包括:
[0049]S100、載入并初始化bitmap表;其中,地址映射表頁與所述bitmap表中的位--對應(yīng);
[0050]其中,該步驟從Flash中載入并初始化bitmap表,利用bi tmap追蹤修改的地址映射表頁,即根據(jù)b i tmap表中的位的值可以確定被修改過的地址映射表頁。
[0051 ] 這里bitmap表中的位與地址映射表頁存在對應(yīng)的關(guān)系,即每一個地址映射表頁對應(yīng)bitmap表中的一位;地址映射表頁的獲得是將地址映射表進(jìn)行分頁得到。分頁的依據(jù)可以是按照每頁存儲的大小確定,也可以是根據(jù)每頁存儲的內(nèi)容進(jìn)行確定,總之是將地址映射表分為若干頁(大于一頁)??蛇x的所述bitmap表的構(gòu)建方法,包括:
[0052]將地址映射表按照設(shè)定每頁內(nèi)存值進(jìn)行分頁,形成地址映射表頁;
[0053]將每一頁所述地址映射表頁與初始bitmap表中的對應(yīng)位建立映射關(guān)系,形成bitmap 表。
[0054]其中,每頁內(nèi)存值可以根據(jù)實際需要進(jìn)行確定,這里并不對每頁內(nèi)存值的具體數(shù)值進(jìn)行限定,地址映射表頁大小可以是4KB,每一頁地址映射表頁對應(yīng)bitmap表中的一位。這樣可以對地址映射表頁的每一個操作進(jìn)行追蹤,并將其記錄到bitmap表中。
[0055]這里bitmap表中的位數(shù)可以大于等于地址映射表頁的個數(shù),只要滿足每一個地址映射表頁都在bitmap表中存在一位與其對應(yīng)即可C3Bi tmap表可以作為映射表的一部分保存在Flash上,當(dāng)系統(tǒng)啟動時,被加載到內(nèi)存中。
[0056]列舉一個具體實施例,請參考圖2,bitmap表中每一位對應(yīng)一頁地址映射表頁。
[0057]SI 10、監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁;
[0058]S120、判斷所述被修改的地址映射表頁是否寫入Flash中;
[0059]S130、若是,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為已保存值;
[0060]S140、若否,則將所述被修改的地址映射表頁在所述bi tmap表中對應(yīng)的位的值設(shè)置為未保存值。
[0061 ]其中,這里的步驟S120和步驟S140與步驟S120并不存在先后關(guān)系,無論是當(dāng)存在被修改的地址映射表頁時,立即將其對應(yīng)的bi tmap表中的位的值設(shè)置為未保存值,之后再跟蹤到其是否寫入Flash中,若寫入,則將其對應(yīng)的bitmap表中的位的值設(shè)置為已保存值;若未寫入,則不改變其對應(yīng)的bitmap表中的位的值;還是先判斷被修改的地址映射表頁是否寫入Flash中,若是,則將被修改的地址映射表頁在bitmap表中對應(yīng)的位的值設(shè)置為已保存值;若否,則將被修改的地址映射表頁在bitmap表中對應(yīng)的位的值設(shè)置為未保存值;這兩種形式都是可以的,只要可以實現(xiàn)在bitmap表中對修改的地址映射表頁的操作進(jìn)行跟蹤并記錄即可。
[0062]這里的已保存值和未保存值的具體設(shè)置情況可以根據(jù)用戶的實際情況進(jìn)行確定,這里并不對具體的設(shè)置情況進(jìn)行限定,只要可以區(qū)分被修改的地址映射表頁是否寫入Flash中即可。
[0063]例如可以用I表示未保存值即修改過且沒有寫入Flash中,可以用I表示已保存值即修改過且寫入Flash中,或未修改過。也可以是用O表示未保存值即修改過且沒有寫入Flash中,可以用I表示已保存值即修改過且寫入Flash中,或未修改過。當(dāng)然也可以用其數(shù)值,或者標(biāo)志位進(jìn)行區(qū)分。
[0064]列舉一個具體實施例,請參考圖2,bitmap表中每一位對應(yīng)一頁地址映射表頁,其中,bitmap表中第5,91,94位對應(yīng)的地址映射表頁存在修改,因此bitmap表中第5,91,94位的數(shù)值設(shè)置為I且沒有寫入Flash中。即表明未保存值為I,已保存值為O。
[0065]基于上述技術(shù)方案,該實施例提供的管理固態(tài)硬盤的地址映射表的方法,該方法能夠根據(jù)b i tmap表中的位的值可以確定被修改過的地址映射表頁,可以快速的對已修改過的地址映射表頁進(jìn)行跟蹤??梢詫崿F(xiàn)修改過的地址映射表頁的快速定位和獲取;進(jìn)一步這樣可以保證系統(tǒng)掉電或者恢復(fù)時,可以準(zhǔn)確的將修改過的地址映射表頁進(jìn)行保存和同步,從而保證地址映射表的完整性和數(shù)據(jù)的同步。
[0066]基于上述技術(shù)方案,監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁之后,還包括:
[0067]判斷所述被修改的地址映射表頁是否在所述bitmap表的映射范圍內(nèi);
[0068]若不在,則提示出錯并重新計算。
[0069]其中,該步驟可以放在步驟SllO之后,或者步驟S120之后;即為了提高準(zhǔn)確性,判斷被修改的地址映射表頁是否在bitmap表的映射范圍內(nèi),若不在,則證明被修改的地址映射表頁與bitmap表的映射關(guān)系出現(xiàn)錯誤,對用戶進(jìn)行提醒,以便快速發(fā)現(xiàn)錯誤且自動重新計算,防止由于計算出錯導(dǎo)致的被修改的地址映射表頁是否在bitmap表的映射范圍內(nèi)的情況的出現(xiàn)。
[0070]下面列舉一個具體實施例,當(dāng)?shù)刂酚成浔眄摫恍薷臅r,先判斷是否將此被修改的地址映射表頁寫回到Flash中,如果未寫回,再判斷被修改的地址映射表頁是否在bitmap表的映射范圍內(nèi),如果在范圍內(nèi),將bitmap表中對應(yīng)位置I;直到該被修改的地址映射表頁被刷新到Flash中,則將bitmap表中對應(yīng)位清零。如果寫回,同樣判斷被修改的地址映射表頁是否在bitmap表映射范圍內(nèi),如果是將bitmap表對應(yīng)位置清零。
[0071]基于上述技術(shù)方案,為了在系統(tǒng)掉電后板載電容只能保證系統(tǒng)工作幾十毫秒的情況下,把修改過的地址映射表頁迅速刷新到Flash中,保證地址映射表的完整性和數(shù)據(jù)的同步。即可以確保被修改的地址映射表頁在系統(tǒng)突然掉電的情況下可以被快速的刷新到Flash存儲器中,該方法在系統(tǒng)掉電后,還包括:
[0072]掃描所述bitmap表,確定所述bitmap表中位的值為未保存值所對應(yīng)的地址映射表頁;
[0073]將所述所對應(yīng)的地址映射表頁保存到Flash中,并將所述bitmap表同步到Flash中。
[0074]其中,上述過程即系統(tǒng)掉電后,在系統(tǒng)板載電容的支持下,系統(tǒng)快速掃描bitmap表,找到對應(yīng)位為未保存值例如I的地址映射表頁(即修改過的地址映射表頁還沒有被刷新至IjFlash),并將修改過的地址映射表頁保存到Flash中,最后同步bitmap表到Flash中。即掉電只對臟頁保存,加快了 FTL表即地址映射表掉電保存的速度,提高了系統(tǒng)的可靠性。
[0075]基于上述技術(shù)方案,為了在系統(tǒng)啟動重構(gòu)地址映射表時減少掃描頁面的數(shù)量,加快系統(tǒng)啟動速度,該方法在系統(tǒng)重新啟動后,還包括:
[0076]載入同步到Flash中的所述bitmap表;
[0077]掃描所述bitmap表,重構(gòu)所述bitmap表中位的值為未保存值所對應(yīng)的地址映射表頁。
[0078]其中,上述具體過程可以是系統(tǒng)重新啟動后,系統(tǒng)首先載入bitmap表,掃描bitmap表的每一位,找到對應(yīng)位為未保存值例如1(即掉電時,尚未及時保存的地址映射表頁),并重構(gòu)此地址映射表頁,直至bitmap表掃描完畢。加電只對臟頁進(jìn)行重構(gòu),加快了系統(tǒng)啟動速度。即通過b i tmap表對修改的映射表頁進(jìn)行追蹤,可以加速臟頁(修改未被保存的映射表頁)的保存速度,并可以加快重構(gòu)地址映射表的速度,加快系統(tǒng)的啟動速度。
[0079]下面通過具體實施例說明上述技術(shù)方案,將FTL表進(jìn)行分頁,每頁4KB,bitmap表中的每一位代表FTL表中一頁的狀態(tài),如果一頁中的表項修改即被修改過,則將bitmap表中的對應(yīng)位置I,由于操作系統(tǒng)的延時寫入機(jī)制,此后一定時機(jī),臟頁需要寫回Flash,此時同步將b i tmap表中的對應(yīng)位清零。b i tmap表中保存的總是臟頁的狀態(tài)。假設(shè)500MB的FTL表,如果每個bit描述映射表中的4K內(nèi)存頁面的話,bitmap表大小為15KB左右,bitmap表中臟頁(被修改的映射表頁)對應(yīng)偏移量被置I。掉電時,掃描bitmap表的狀態(tài),將臟頁快速刷入Flash。重構(gòu)時,讀出上次掉電保存的bitmap表,找到需要重構(gòu)的映射表頁,由于系統(tǒng)的局部性原理,通過bitmap表和映射表的關(guān)系,只需將少量的臟頁重構(gòu)即可。
[0080]基于上述技術(shù)方案,該實施例提供的管理固態(tài)硬盤的地址映射表的方法,通過bitmap表追蹤修改的地址映射表頁,掉電時,依靠SSD內(nèi)的電容,代碼快速掃描bitmap表將臟頁面在幾十ms時間內(nèi)迅速寫入Flash。掉電后沒來得及下盤的臟頁被丟掉,重啟之后,需要將這些丟掉的表頁面從Flash Page中重構(gòu)出來,系統(tǒng)必須保證有哪些臟頁上次沒有刷的信息保存到Flash,采用bitmap表追蹤每一筆對地址映射表的更新并同步刷入bitmap表,并將bi tmap表保存到Flash。重啟后FTL表代碼從Flash將bi tmap表讀出,并根據(jù)bi tmap表和映射表的關(guān)系掃描,重構(gòu)FTL表。
[0081]本發(fā)明實施例提供了管理固態(tài)硬盤的地址映射表的方法,能夠根據(jù)bitmap表中的位的值可以確定被修改過的地址映射表頁。
[0082]下面對本發(fā)明實施例提供的管理固態(tài)硬盤的地址映射表的裝置及固態(tài)硬盤進(jìn)行介紹,下文描述的管理固態(tài)硬盤的地址映射表的裝置及固態(tài)硬盤與上文描述的管理固態(tài)硬盤的地址映射表的方法可相互對應(yīng)參照。
[0083]請參考圖3,圖3為本發(fā)明實施例所提供的管理固態(tài)硬盤的地址映射表的裝置的結(jié)構(gòu)框圖;該裝置可以包括:
[0084]初始化模塊100,用于載入并初始化bitmap表;其中,地址映射表頁與所述bitmap表中的位--對應(yīng);
[0085]監(jiān)測模塊200,用于監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁;
[0086]第一判斷模塊300,用于判斷所述被修改的地址映射表頁是否寫入Flash中;
[0087]修改模塊400,用于若是,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為已保存值;若否,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為未保存值。
[0088]其中,還可以包括:bitmap表構(gòu)建模塊,用于將地址映射表按照設(shè)定每頁內(nèi)存值進(jìn)行分頁,形成地址映射表頁;將每一頁所述地址映射表頁與初始bitmap表中的對應(yīng)位建立映射關(guān)系,形成bitmap表。
[0089]該裝置還可以包括:
[0090]第二判斷模塊,用于判斷所述被修改的地址映射表頁是否在所述bitmap表的映射范圍內(nèi);
[0091 ]提示模塊,用于若不在,則提示出錯并重新計算。
[0092]基于上述任意實施例,請參考圖4,該裝置還包括:
[0093]掃描模塊500,用于在系統(tǒng)掉電后掃描所述bitmap表,確定所述bitmap表中位的值為未保存值所對應(yīng)的地址映射表頁;
[0094]同步保存模塊600,用于將所述所對應(yīng)的地址映射表頁保存到Flash中,并將所述bitmap表同步到Flash中。
[0095]基于上述實施例,請參考圖5,該裝置還包括:
[0096]載入模塊700,用于在系統(tǒng)重新啟動后載入同步到Flash中的所述bitmap表;
[0097]重構(gòu)模塊800,用于掃描所述bitmap表,重構(gòu)所述bitmap表中位的值為未保存值所對應(yīng)的地址映射表頁。
[0098]本發(fā)明實施例還提供一種固態(tài)硬盤,包括:上述任一項實施例所述的管理固態(tài)硬盤的地址映射表的裝置。
[0099]說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0100]專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0101]結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(R0M)、電可編程R0M、電可擦除可編程R0M、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
[0102]以上對本發(fā)明所提供的管理固態(tài)硬盤的地址映射表的方法、裝置及固態(tài)硬盤進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
【主權(quán)項】
1.一種管理固態(tài)硬盤的地址映射表的方法,其特征在于,包括: 載入并初始化bi tmap表;其中,地址映射表頁與所述bi tmap表中的位--對應(yīng); 監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁; 判斷所述被修改的地址映射表頁是否寫入Flash中; 若是,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為已保存值; 若否,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為未保存值。2.如權(quán)利要求1所述的管理固態(tài)硬盤的地址映射表的方法,其特征在于,所述bitmap表的構(gòu)建方法,包括: 將地址映射表按照設(shè)定每頁內(nèi)存值進(jìn)行分頁,形成地址映射表頁; 將每一頁所述地址映射表頁與初始bi tmap表中的對應(yīng)位建立映射關(guān)系,形成bi tmap表。3.如權(quán)利要求2所述的管理固態(tài)硬盤的地址映射表的方法,其特征在于,監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁之后,還包括: 判斷所述被修改的地址映射表頁是否在所述bitmap表的映射范圍內(nèi); 若不在,則提示出錯并重新計算。4.如權(quán)利要求1至3任一項所述的管理固態(tài)硬盤的地址映射表的方法,其特征在于,在系統(tǒng)掉電后,還包括: 掃描所述b i tmap表,確定所述b i tmap表中位的值為未保存值所對應(yīng)的地址映射表頁; 將所述所對應(yīng)的地址映射表頁保存到Flash中,并將所述bitmap表同步到Flash中。5.如權(quán)利要求4所述的管理固態(tài)硬盤的地址映射表的方法,其特征在于,在系統(tǒng)重新啟動后,還包括: 載入同步到Flash中的所述bitmap表; 掃描所述b i tmap表,重構(gòu)所述b i tmap表中位的值為未保存值所對應(yīng)的地址映射表頁。6.—種管理固態(tài)硬盤的地址映射表的裝置,其特征在于,包括: 初始化模塊,用于載入并初始化bi tmap表;其中,地址映射表頁與所述bi tmap表中的位——對應(yīng); 監(jiān)測模塊,用于監(jiān)測所述地址映射表頁,確定被修改的地址映射表頁; 第一判斷模塊,用于判斷所述被修改的地址映射表頁是否寫入Flash中; 修改模塊,用于若是,則將所述被修改的地址映射表頁在所述bi tmap表中對應(yīng)的位的值設(shè)置為已保存值;若否,則將所述被修改的地址映射表頁在所述bitmap表中對應(yīng)的位的值設(shè)置為未保存值。7.如權(quán)利要求6所述的管理固態(tài)硬盤的地址映射表的裝置,其特征在于,還包括: 第二判斷模塊,用于判斷所述被修改的地址映射表頁是否在所述b i t m a P表的映射范圍內(nèi); 提示模塊,用于若不在,則提示出錯并重新計算。8.如權(quán)利要求6或7所述的管理固態(tài)硬盤的地址映射表的裝置,其特征在于,還包括: 掃描模塊,用于在系統(tǒng)掉電后掃描所述b i tmap表,確定所述b i tmap表中位的值為未保存值所對應(yīng)的地址映射表頁; 同步保存模塊,用于將所述所對應(yīng)的地址映射表頁保存到Flash中,并將所述bitmap表同步到Flash中。9.如權(quán)利要求8所述的管理固態(tài)硬盤的地址映射表的裝置,其特征在于,還包括: 載入模塊,用于在系統(tǒng)重新啟動后載入同步到Flash中的所述bi tmap表; 重構(gòu)模塊,用于掃描所述bi tmap表,重構(gòu)所述bi tmap表中位的值為未保存值所對應(yīng)的地址映射表頁。10.—種固態(tài)硬盤,其特征在于,包括:如權(quán)利要求6至9任一項所述的管理固態(tài)硬盤的地址映射表的裝置。
【文檔編號】G06F12/1009GK106055279SQ201610409461
【公開日】2016年10月26日
【申請日】2016年6月12日
【發(fā)明人】趙賀輝
【申請人】浪潮(北京)電子信息產(chǎn)業(yè)有限公司