一種存儲(chǔ)器啟動(dòng)控制方法,及存儲(chǔ)器啟動(dòng)控制裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息技術(shù)領(lǐng)域,特別涉及一種存儲(chǔ)器啟動(dòng)控制方法,及存儲(chǔ)器啟動(dòng)控制裝置。
【背景技術(shù)】
[0002]host (主機(jī))FTL (Flash translat1n layer,閃存轉(zhuǎn)換層)是一種軟件中間層,用于將閃存模擬成為虛擬塊設(shè)備,從而能夠在閃存上實(shí)現(xiàn)塊設(shè)備類文件系統(tǒng)。FTL首先構(gòu)造數(shù)據(jù)“虛擬”塊,這些虛擬塊獨(dú)立于Flash (閃存)設(shè)備的物理可擦除塊,接著FTL管理Flash上的數(shù)據(jù),使其看起來像原地更新(write in place),事實(shí)上這些數(shù)據(jù)被存儲(chǔ)在Flash中不同的位置,最后FTL管理Flash物理塊,進(jìn)行垃圾回收,使得系統(tǒng)有一些已經(jīng)被擦除過的、干凈的空閑塊用于存儲(chǔ)數(shù)據(jù)。如果系統(tǒng)中存在多個(gè)Flash芯片,F(xiàn)TL通過編程模式將這些芯片組織成為一塊“邏輯”芯片。
[0003]SSD (Solid State Disk,固態(tài)硬盤)常用的啟動(dòng)方法,是掃描整個(gè)固態(tài)磁盤的每一個(gè)block(塊)獲得元數(shù)據(jù)信息,驅(qū)動(dòng)讀取這些元數(shù)據(jù)信息進(jìn)行啟動(dòng)。這樣的好處是整個(gè)系統(tǒng)會(huì)設(shè)計(jì)的比較簡(jiǎn)單,且系統(tǒng)會(huì)更健壯,但是磁盤的啟動(dòng)時(shí)間耗時(shí)過程,隨著磁盤容量的增力口,這部分耗時(shí)會(huì)越來越長(zhǎng)。因此該方案隨著磁盤容量的不斷增加,越來越不適用。如何提供快速啟動(dòng)的方案稱為技術(shù)人員追求的目標(biāo)。
[0004]目前基于hostFTL的快速啟動(dòng)的是比較主流的快速啟動(dòng)方法,該方案的基本思想是在對(duì)host FTL產(chǎn)生的相關(guān)數(shù)據(jù),包括映射表(存邏輯地址與硬件地址的映射關(guān)系),壞塊表等信息,定時(shí)更新到板卡的SPI (Serial Peripheral Interface,串行外設(shè)接口,簡(jiǎn)稱串口 )的存儲(chǔ)介質(zhì)中;在啟動(dòng)時(shí),驅(qū)動(dòng)程序從SPI中獲取元數(shù)據(jù)信息信進(jìn)行啟動(dòng)。SPI的存儲(chǔ)介質(zhì)為Nor flash (或非閃存)。Nor flash的基本特征是,寫和擦較慢,讀取速度較塊,壽命相對(duì)Nand flash (與非閃存)比較短。Nor flash擦除的單位和Nand flash 一樣均為一個(gè)block (塊),但是讀寫的單位可以是byte (字節(jié)),更利于類似于較小且頻繁修改的元數(shù)據(jù)信息。這種情況下,元數(shù)據(jù)信息可以以比較高的頻度更新。目前該方法為host FTL的主流快速啟動(dòng)方法。
[0005]以上方案,將元數(shù)據(jù)信息存在SPI的Nor flash中,需要為Nor flash使用額外操作Nor flash的電路,使得電路復(fù)雜。而且Nor flash寫入時(shí)間比較長(zhǎng),需要比較大的電容。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實(shí)施例提供了一種存儲(chǔ)器啟動(dòng)控制方法,及存儲(chǔ)器啟動(dòng)控制裝置,用于簡(jiǎn)化電路,避免使用大電容。
[0007]—種存儲(chǔ)器啟動(dòng)控制方法,包括:
[0008]在存儲(chǔ)器啟動(dòng)開始后,從路標(biāo)物理塊內(nèi)讀取元數(shù)據(jù)信息;所述路標(biāo)物理塊為所述存儲(chǔ)器的保留塊;所述元數(shù)據(jù)信息為存儲(chǔ)塊描述信息;
[0009]將所述元數(shù)據(jù)信息保存到內(nèi)存,用于所述存儲(chǔ)器的驅(qū)動(dòng)讀取所述元數(shù)據(jù)信息進(jìn)行啟動(dòng)。
[0010]一種存儲(chǔ)器啟動(dòng)fe制裝直,包括:
[0011]信息讀取單元,用于在存儲(chǔ)器啟動(dòng)開始后,從路標(biāo)物理塊內(nèi)讀取元數(shù)據(jù)信息;所述路標(biāo)物理塊為所述存儲(chǔ)器的保留塊;所述元數(shù)據(jù)信息為存儲(chǔ)塊描述信息;
[0012]保存控制單元,用于將所述元數(shù)據(jù)信息保存到內(nèi)存,用于所述存儲(chǔ)器的驅(qū)動(dòng)讀取所述元數(shù)據(jù)信息進(jìn)行啟動(dòng)。
[0013]從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):元數(shù)據(jù)信息存放在存儲(chǔ)器的保留塊中,在啟動(dòng)過程中將其讀入到內(nèi)存中,實(shí)現(xiàn)快速啟動(dòng)。在該方案中,元數(shù)據(jù)信息和存儲(chǔ)器使用了相同類型的存儲(chǔ)塊,因此而不需要使用額外的電路,從而簡(jiǎn)化電路,并且可以避免大電容的使用。
【附圖說明】
[0014]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0015]圖1為本發(fā)明實(shí)施例方法流程示意圖;
[0016]圖2為本發(fā)明實(shí)施例方法執(zhí)行所屬層結(jié)構(gòu)示意圖;
[0017]圖3為本發(fā)明實(shí)施例存儲(chǔ)器啟動(dòng)控制裝置結(jié)構(gòu)示意圖;
[0018]圖4為本發(fā)明實(shí)施例存儲(chǔ)器啟動(dòng)控制裝置結(jié)構(gòu)示意圖;
[0019]圖5為本發(fā)明實(shí)施例存儲(chǔ)器啟動(dòng)控制裝置結(jié)構(gòu)示意圖;
[0020]圖6為本發(fā)明實(shí)施例存儲(chǔ)器啟動(dòng)控制裝置結(jié)構(gòu)示意圖;
[0021]圖7為本發(fā)明實(shí)施例存儲(chǔ)器啟動(dòng)控制裝置結(jié)構(gòu)示意圖;
[0022]圖8為本發(fā)明實(shí)施例存儲(chǔ)器啟動(dòng)控制裝置結(jié)構(gòu)示意圖;
[0023]圖9為本發(fā)明實(shí)施例終端結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0025]本發(fā)明實(shí)施例提供了一種存儲(chǔ)器啟動(dòng)控制方法,如圖1所示,包括:
[0026]101:在存儲(chǔ)器啟動(dòng)開始后,從路標(biāo)物理塊內(nèi)讀取元數(shù)據(jù)信息;上述路標(biāo)物理塊為上述存儲(chǔ)器的保留塊;上述元數(shù)據(jù)信息為存儲(chǔ)塊描述信息;
[0027]在本實(shí)施例中,存儲(chǔ)器可以是固態(tài)硬盤,也可以是以閃存為基本存儲(chǔ)芯片的其他存儲(chǔ)器,在本發(fā)明實(shí)施例中何種具體存儲(chǔ)器并不影響本發(fā)明實(shí)施例的實(shí)現(xiàn),本發(fā)明實(shí)施例對(duì)此不予限定。
[0028]另外,路標(biāo)物理塊是存儲(chǔ)器的物理塊,路標(biāo)物理塊是用來存放元數(shù)據(jù)信息的存儲(chǔ)空間。路標(biāo)物理塊是存儲(chǔ)器的存儲(chǔ)空間的一部分,作為保留快專用于存儲(chǔ)元數(shù)據(jù)信息。具體可以是,預(yù)先選取少量的物理塊號(hào)作為保留元數(shù)據(jù)信息的保留塊。在系統(tǒng)第一次初始化的時(shí)候,可以把這些選為路標(biāo)的物理塊標(biāo)識(shí)為壞塊。那么,在系統(tǒng)初始化時(shí),這些路標(biāo)物理塊不會(huì)被選為空閑塊備用,而是作為保留塊一直保存。
[0029]102:將上述元數(shù)據(jù)信息保存到內(nèi)存,用于上述存儲(chǔ)器的驅(qū)動(dòng)讀取上述元數(shù)據(jù)信息進(jìn)行啟動(dòng)。
[0030]本發(fā)明實(shí)施例,元數(shù)據(jù)信息存放在存儲(chǔ)器的保留塊中,在啟動(dòng)過程中將其讀入到內(nèi)存中,不需要對(duì)整盤進(jìn)行掃描,從而實(shí)現(xiàn)快速啟動(dòng)。在該方案中,元數(shù)據(jù)信息和存儲(chǔ)器使用了相同類型的存儲(chǔ)塊,因此而不需要使用額外的電路,從而簡(jiǎn)化電路,并且可以避免大電容的使用。
[0031]為了保持路標(biāo)物理塊中元數(shù)據(jù)的正確性,防止因?yàn)榈綦姷仍驅(qū)е碌脑獢?shù)據(jù)信息錯(cuò)誤,本發(fā)明實(shí)施例還提供了如下解決方案:進(jìn)一步地,在從路標(biāo)物理塊內(nèi)讀取元數(shù)據(jù)信息過程中,上述方法還包括:清除路標(biāo)物理塊內(nèi)的元數(shù)據(jù)信息。
[0032]通過清除路標(biāo)物理塊內(nèi)的元數(shù)據(jù)信息,無論出現(xiàn)何種情況,標(biāo)物理塊內(nèi)的元數(shù)據(jù)信息均不會(huì)受到干擾導(dǎo)致再次啟動(dòng)時(shí)讀取到錯(cuò)誤的元數(shù)據(jù)信息。
[0033]由于在異常掉電的情況下導(dǎo)致了元數(shù)據(jù)的異常,而且由于本發(fā)明實(shí)施例在讀取元數(shù)據(jù)信息過程中,已經(jīng)刪除了路標(biāo)物理塊中的元數(shù)據(jù),那么本發(fā)明實(shí)施例提供了在此種情況下的具體實(shí)現(xiàn)方案,如下:在清除路標(biāo)物理塊內(nèi)的元數(shù)據(jù)信息之后,上述方法還包括:
[0034]在上述存儲(chǔ)器運(yùn)行過程中,若出現(xiàn)異常掉電重啟,則在確定路標(biāo)物理塊內(nèi)的元數(shù)據(jù)信息不完整和/或錯(cuò)誤之后,進(jìn)行全盤掃描獲取每一個(gè)物理塊獲得元數(shù)據(jù)信息。
[0035]在本發(fā)明實(shí)施例中,由于輸入/輸出操作(例如:讀操作,寫操作,擦除操作)會(huì)導(dǎo)致元數(shù)據(jù)信息的改變,為了保持元數(shù)據(jù)信息的一致性,在本發(fā)明實(shí)施實(shí)例執(zhí)行卸載驅(qū)動(dòng)的過程中,需要禁止輸入/輸出操作使元數(shù)據(jù)信息能夠準(zhǔn)確,具體如下:進(jìn)一步地,在上述存儲(chǔ)器啟動(dòng)之后,上述方法還包括:若上述存儲(chǔ)器的驅(qū)動(dòng)被卸載,則禁止指向上述存儲(chǔ)器的輸入/輸出操作;
[0036]將存內(nèi)存中的元數(shù)據(jù)信息