(北京空間飛行器總體設(shè)計部,北京 100094)
作為衛(wèi)星數(shù)據(jù)管理系統(tǒng)中的關(guān)鍵組成,星載固態(tài)存儲器為有效載荷業(yè)務(wù)、平臺業(yè)務(wù)、星間中繼通信業(yè)務(wù)等數(shù)據(jù)提供存儲管理、回放傳輸?shù)裙δ躘1]。目前,星載固態(tài)存儲器主要使用基于Nand FLASH的文件存儲管理系統(tǒng),其具有非易失性、電可擦除性、可重復(fù)編程以及高密度、低功耗等特點。但目前YAFFS法中的索引表使用多級映射方式,其索引表建立過程耗時巨大,從而導(dǎo)致星載固態(tài)存儲器存在啟動時間過長的問題。而衛(wèi)星所處的空間環(huán)境充斥著大量的帶電粒子會造成星載固態(tài)存儲器運行邏輯錯亂或者工作失效,嚴(yán)重時會導(dǎo)致整個星載數(shù)據(jù)管理系統(tǒng)不能工作。面對這種情況,地面通常會采用星載設(shè)備主備份切換或者復(fù)位操作來解決在軌出現(xiàn)的問題[2]。同時,空間探測器承載的有效載荷向著數(shù)量多,性能高以及多樣化的方向迅速發(fā)展,衛(wèi)星平臺承載的數(shù)據(jù)流要求越來越高。面對高速的數(shù)據(jù)輸入,固態(tài)存儲器過長的啟動時間會增加存儲數(shù)據(jù)丟失或者出錯的風(fēng)險。因此如何減少星上存儲系統(tǒng)的啟動時間、提高快速訪問速度已經(jīng)成為當(dāng)前星載數(shù)據(jù)管理研究的熱點之一。
當(dāng)前研究趨勢主要集中于兩個方向:1)通過精簡索引表信息來減少需要恢復(fù)的數(shù)據(jù)量。例如Chan-Sul Park[3]提出的用掃描每個Nand Flash塊(block)頭文件空閑區(qū)的方式替代掃描每個Nand Flash頁(Page)的方式來建立更精簡的索引表信息。索引表的建立過程以及索引表內(nèi)容均得到了簡化,但其啟動時間隨著存儲空間的增加而逐漸延長,不適用于大容量的Nand Flash存儲系統(tǒng);2)通過優(yōu)化索引表存儲方式來提高索引表建立速度。Keun Soo Yim[4]提出的快照技術(shù)(Snapshot)每次關(guān)機前將系統(tǒng)中的索引數(shù)據(jù)存儲于Nand Flash中,在存儲系統(tǒng)啟動后通過讀取快照中的數(shù)據(jù)來恢復(fù)索引表。但這種索引表存儲方式減少了每次上電后對所有Nand Flash空閑區(qū)的掃描工作,成功加快了存儲器啟動速度。但其索引表的存儲只在收到關(guān)機指令后啟動,對與沒有指令的非預(yù)期關(guān)機或者突然斷電情況無法啟動存儲。而星上存儲系統(tǒng)中常常存在這樣非預(yù)期斷電的情況,故該方式具有很高的不可靠性,不適于在衛(wèi)星上使用。只包含Nand Flash單一存儲器件的固態(tài)存儲器,精簡索引表信息常常受制于Nand Flash存儲體的容量,而修改索引表的存儲方式也會帶來極大的不可靠性。
針對這一問題,分級緩存的新設(shè)計采用片內(nèi)緩存結(jié)合小容量非易失存儲器(MRAM)[5]的硬件架構(gòu)打破這一困局。MRAM其集動態(tài)RAM、磁盤存儲和高速緩沖存儲器功能于一身,不僅存取速度快,掉電不流失數(shù)據(jù),接口時序與RAM相似,而且存儲單元不受單粒子效應(yīng)的影響。本文將重點討論如何將具有非易失且具有抗輻照功能的磁電存儲器(MRAM)和Nand Flash存儲器結(jié)合實現(xiàn)分級緩存,在以對象為索引的啟動方式下把文件對象頭存儲指針存儲在MRAM中,從而保證在啟動時可以快速定位對象文件地址指針來建立文件系統(tǒng)。若恢復(fù)失敗,再以NAND FLASH文件元數(shù)據(jù)為依據(jù),重新精簡元數(shù)據(jù)結(jié)構(gòu)并集成為獨立的塊元數(shù)據(jù)區(qū),對整個存儲體的文件信息快速訪問,從而實現(xiàn)固態(tài)存儲器啟動速度和存儲可靠性的大幅度提升。
本文結(jié)構(gòu)如下,第一節(jié)主要闡述了基于分級緩存加速的星載固態(tài)存儲系統(tǒng)架構(gòu)。第二節(jié)深入解析了基于分級緩存加速的文件系統(tǒng)啟動及管理策略;第三節(jié)論述了星載固態(tài)存儲器啟動性能分析,并通過實驗結(jié)果和以往設(shè)計進(jìn)行了比較,表明了本設(shè)計的有效性;第四節(jié)對全文進(jìn)行了總結(jié)和展望。
磁電存儲器(MRAM)[5]中數(shù)據(jù)存儲是通過直接附著于鐵磁薄膜上具有電感耦合效應(yīng)的導(dǎo)線來完成的。這種工作機理不僅提高了存儲器的速度、可靠性,降低了功耗,而且在存儲單元尺寸、存儲速度方面也完全可以與DRAM相比擬。在衛(wèi)星上使用的磁電存儲器經(jīng)過抗輻照加固和3D疊片封裝,并行疊加的MRAM的數(shù)據(jù)線各自獨立組成更寬的數(shù)據(jù)總線,共用地址線和讀寫控制信號,通過片選信號進(jìn)行選通,如圖1(a)所示,例如3D-plus公司的3DMR8M32VS8420 磁電存儲器,其內(nèi)部為兩組MRAM存儲基片,每次4片并行組成32位的數(shù)據(jù)總線,兩組共用17位地址總線和讀寫使能信號,通過片選信號進(jìn)行選通。
圖1 MRAM和Nand Flash存儲架構(gòu)
Nand Flash芯片存儲結(jié)構(gòu)中的讀寫操作的基本單元為頁(Page)[6],擦除操作的基本單元為塊(Block)。每頁包含數(shù)據(jù)區(qū)和空閑區(qū),在固態(tài)存儲器中空余區(qū)用于存儲該頁相關(guān)的管理信息。由于Nand Flash的工藝問題,其只支持先擦除再寫入的數(shù)據(jù)更新方式,此外其內(nèi)部存在壞塊,在壞塊區(qū)存儲數(shù)據(jù)會造成數(shù)據(jù)錯誤。Nand Flash出廠時會標(biāo)注存在的壞塊,但壞塊會在使用中陸續(xù)產(chǎn)生。在衛(wèi)星上使用的Nand Flash存儲器經(jīng)過抗輻照加固和3D疊片封裝。疊片中并行聯(lián)系的Flash共用數(shù)據(jù)線,通過片選信號進(jìn)行選通,可以使用一個Flash接口控制模塊進(jìn)行控制。而隨著存儲容量的增加,星上存儲系統(tǒng)使用多個3D疊片封裝的Nand Flash存儲器,每個Nand Flash存儲器的IO接口各自獨立存在,從而形成Nand Flash的多通道存儲架構(gòu)[7],如圖1(b)所示。
Nand Flash和MRAM協(xié)同工作存儲系統(tǒng)硬件架構(gòu),將MRAM接入星載固態(tài)存儲系統(tǒng)[8]的下層FPGA中。其和Nand Flash一起受FPGA控制,具體如圖2所示。整個固態(tài)存儲器系統(tǒng)按照層次化思想進(jìn)行設(shè)計,其使用CPU作為固態(tài)存儲器文件系統(tǒng)YAFFS2的實現(xiàn)載體,使用FPGA通過對Flash頁讀取,F(xiàn)lash頁寫入、Flash塊擦除以及Flash壞塊管理等基本單元操作,為CPU軟件提供硬件接口支持。其中,F(xiàn)PGA內(nèi)部分為負(fù)責(zé)接口選通和時序的物理接口管理模塊,負(fù)責(zé)存儲單元操作的存儲基本單元模塊,負(fù)責(zé)數(shù)據(jù)流控制和糾錯的數(shù)據(jù)緩存模塊,以及和CPU總線通信的CPU接口模塊。
圖2 基于分級緩存的星載固態(tài)存儲器硬件架構(gòu)
基于YAFFS2文件系統(tǒng)的固態(tài)存儲器啟動流程分為兩種,一種為以對象為索引自上而下搭建文件系統(tǒng), 一種為以Nand Flash里面的元數(shù)據(jù)為依據(jù)自下而上的恢復(fù)文件系統(tǒng),如圖3所示。
第一種方式中,YAFFS2 使用對象(object)來實例化所有存入閃存的文件,每個對象都有一個對象頭(object header)與之對應(yīng)。對象頭(object header)存儲文件對象的基本信息,如對象類型、父目錄的對象id、對象名、屬主信息、訪問信息等等[9]。在文件系統(tǒng)掛載時,YAFFS2根據(jù)對象頭創(chuàng)建相應(yīng)文件的對象,進(jìn)而建立起整個文件系統(tǒng)的組織關(guān)系。每當(dāng)文件發(fā)生改動(修改、增加、刪除)后,文件系統(tǒng)都會在該文件后添加一個新的對象頭做為標(biāo)識,。由于文件有可能發(fā)生過多次更改,同一文件可能會對應(yīng)多個對象頭,但其中只有一個是有效的。在固態(tài)存儲器啟動時,需要掃描整個Flash來鎖定有效的對象頭文件,這使得文件系統(tǒng)加載時間隨著Flash容量增大而延長,會出現(xiàn)啟動速度慢的現(xiàn)象。
第二種方式中,YAFFS按照固定大小的數(shù)據(jù)段來組織文件,并利用NandFlash頁面的空閑區(qū)存放ECC(錯誤檢查與糾正)糾錯信息和文件系統(tǒng)組織信息[10]。在系統(tǒng)啟動過程中,固態(tài)存儲器會遍歷所有Flash頁的空閑區(qū)來見獲取足夠的信息,將頁信息整合為按照塊為單位的塊信息數(shù)組(block_info)。遍歷結(jié)束后,CPU讀取該數(shù)組到緩存中進(jìn)行管理,并配置文件系統(tǒng)結(jié)構(gòu)。同時CPU在內(nèi)存中設(shè)置chunk_bits數(shù)組記錄Flash中所有邏輯頁的使用情況,數(shù)組中的每一個位(bit)對應(yīng)閃存中的一個頁的狀態(tài),若頁被使用則對應(yīng)位設(shè)置為1。當(dāng)文件系統(tǒng)被卸載時,塊信息數(shù)組(block_info)和chunk_bits數(shù)組作為檢查點(checkpoint)數(shù)據(jù)被寫入到Nand Flash中[11]。在下一次加載文件系統(tǒng)時,檢查點數(shù)據(jù)可以幫助YAFFS2將文件系統(tǒng)快速恢復(fù)到上一次卸載前的狀態(tài),而不必掃描整個Flash,從而加快了文件系統(tǒng)的掛載速度。如果文件恢復(fù)失敗,YAFFS2讀取塊序號(seq_number)采用逆序掃描的方式獲取閃存上每一塊的信息來恢復(fù)文件系統(tǒng)。這樣的遍歷操作也會造成啟動時必須遍歷所有塊,致使啟動時間隨容量增加大幅增長,無法滿足星載固態(tài)存儲器的應(yīng)用需求。
通過對啟動流程進(jìn)行分析可知,第一個從對象出發(fā)的啟動方式的關(guān)鍵在于對各個文件中對象頭(object header)的定位。第二個從Flash頁內(nèi)空閑區(qū)出發(fā)的啟動方式的關(guān)鍵在于對索引信息的維護(hù)。因此,啟動流程的優(yōu)化關(guān)鍵在于文件對象頭的地址索引,以及塊信息索引表的數(shù)據(jù)維護(hù)。
新的對象頭頁面(Object header)伴隨著文件系統(tǒng)操作而不斷被創(chuàng)建,舊的對象頭頁面不斷失效。本文將這類靈活變化又需要斷電保存的地址信息存入磁電存儲器MRAM中,每次新對象頭頁面被創(chuàng)建時就同步更新對應(yīng)文件號(ObjectID)在MRAM中的對象頭頁面存儲地址,這樣固態(tài)存儲器啟動的時候可以直接讀取最新對象頭文件的存儲指針,減少了遍歷Flash的操作流程。
針對塊信息索引表的數(shù)據(jù)維護(hù),本文旨在通過精簡文件組織信息內(nèi)容和優(yōu)化文件組織信息存儲方式等兩個方面實現(xiàn)啟動流程的優(yōu)化。在文件組織信息中,Nand Flash存儲體的壞塊信息更新頻率低,查詢率高,適合在吞吐高,斷電保存的MRAM中存儲。因此在本設(shè)計中,在MRAM中設(shè)置壞塊表記錄Flash中所有塊的好壞塊情況,表中的每一個位(bit)對應(yīng)Flash中的一個塊,好塊為0,壞塊為1。通過對好壞塊表的查詢可以成功屏蔽壞塊對文件操作的影響。
參考yaffs_PackdTags2Part描述結(jié)構(gòu)內(nèi)容,提煉文件信息數(shù)據(jù),即塊元數(shù)據(jù)??紤]星載系統(tǒng)處理數(shù)據(jù)的類型與特點,設(shè)置星載固態(tài)存儲器的文件系統(tǒng)最多支持1024個文件,同時每個文件的最小單位為一個Flash的塊。這樣對于每個Flash的塊來說,其元數(shù)據(jù)中的每個屬性都是唯一的,其具體參數(shù)如表1所示。
本設(shè)計嘗試在Nand Flash中尋找區(qū)域集中保存所有的塊元數(shù)據(jù),定義為塊元數(shù)據(jù)區(qū),特別針對星載固態(tài)存儲器的多通道系統(tǒng),在每個擁有獨立IO接口的Flash芯片(Device)中設(shè)置保存該Device所有Block塊元數(shù)據(jù)的塊元數(shù)據(jù)區(qū),這樣在固態(tài)存儲器啟動時可以并行多通道讀取各自獨立的塊元數(shù)據(jù)區(qū),來獲得整個Nand Flash存儲體的文件系統(tǒng)信息,而不再將每個Block塊都一一遍歷,從而大大縮短啟動時間。其具體存儲分布和更新方式如圖4所示。
圖4 多個Device中塊數(shù)據(jù)區(qū)存儲及更新示意圖
伴隨著星載固態(tài)存儲系統(tǒng)的運行,每個文件操作都有可能導(dǎo)致Block塊元數(shù)據(jù)內(nèi)容的失效,故需要定時遍歷整個Device來讀取Block塊內(nèi)部文件信息形成新的塊元數(shù)據(jù)區(qū)文件。從舊的塊元數(shù)據(jù)區(qū)文件尾部開始順序存儲到Flash中。最新一次的完整數(shù)據(jù)的地址指針伴隨著每次定時更新而跳變,故將這部分?jǐn)?shù)據(jù)放入MRAM中存儲。當(dāng)斷電后啟動時,星載固態(tài)存儲器來讀取MRAM來獲得最新一次版本的塊數(shù)據(jù)區(qū)的完整數(shù)據(jù),并作為數(shù)據(jù)恢復(fù)的信息參考。將整個存儲體的壞塊表,所有文件的對象頭存儲指針以及所有Flash芯片的塊元數(shù)據(jù)區(qū)存儲在MRAM中進(jìn)行管理,通過三模冗余存儲設(shè)計來保證存儲數(shù)據(jù)的高可靠性。
星載固態(tài)存儲器的啟動時間與Nand Flash接口時序、容量、內(nèi)部壞塊數(shù)、塊元數(shù)據(jù)區(qū)大小以及塊元數(shù)據(jù)更新周期等因素有關(guān),依照星上器件使用情況對上述因素進(jìn)行量化假設(shè):
1)Nand Flash存儲體內(nèi)部架構(gòu)以及相關(guān)參數(shù)在目前星上存儲系統(tǒng)的性能區(qū)間如表2所示。
2)Nand Flash讀取操作時,設(shè)定時鐘周期為tRC,Flash內(nèi)部運行時間為trb,讀取數(shù)據(jù)字節(jié)數(shù)為Brd, Flash內(nèi)部數(shù)據(jù)的讀取時間為:
Trd=7tRC+trb+BrdtRC
(1)
設(shè)置Tpre=7tRC+trb,則方程式(1)可以簡化為:
Trd=Tpre+BrdtRC
(2)
其中:tRC一般在40~80 ns之間,tRC一般在25 μs左右。
3)MRAM讀取時間為TM_RD,其中0≤TM_RD≤35 ns
4)星載固態(tài)存儲器YAFFS2文件系統(tǒng)中文件數(shù)設(shè)置為WObject個,其中0≤WObject≤1023。
5)單個Device中塊元數(shù)據(jù)區(qū)大小為BWA個Flash數(shù)據(jù)頁Page,根據(jù)定義,即:
設(shè)定0≤BWA≤QPage。
根據(jù)上一節(jié)Nand Flash讀取時間公式(2),對傳統(tǒng)算法的啟動過程進(jìn)行建模。傳統(tǒng)星載固態(tài)存儲器每次啟動需要搜索所有數(shù)據(jù)頁的空閑區(qū),來尋找對象頭文件,或者獲取塊序號(Seq_Number)用于逆序掃描建立文件系統(tǒng)。因此其啟動時間Tmnt可以定義為:
Tmnt=PDeviceLChipSBlockQPage(Tpre+BSparetRC)
(3)
本文中設(shè)計的星載固態(tài)存儲器針對兩種YAFFS2 文件系統(tǒng)掛載方式分別設(shè)計了基于MRAM的啟動加速算法,下面一一進(jìn)行建模并估算啟動時間:
1)針對以對象為索引自上而下的文件啟動方式,其啟動過程為讀取MRAM獲得對象頭文件地址指針,然后讀取頭文件內(nèi)部數(shù)據(jù),依次遍歷所有文件后,從而完成固態(tài)存儲器啟動操作。故其啟動過程Tmnt_H可以定義為:
Tmnt_H=WObject[TM_RD+Tpre+(BSpare+BData)tRC]
(4)
考慮到TM_RD遠(yuǎn)小于Tpre,則公式(4)可以簡化為:
Tmnt_H=WObject[Tpre+(BSpare+BData)tRC]
(5)
2)針對以Nand Flash里面的元數(shù)據(jù)為依據(jù)自下而上的文件啟動方式,其啟動過程為讀取MRAM獲得每個Device中的塊元數(shù)據(jù)區(qū)起始地址指針,然后數(shù)據(jù)區(qū)的塊元數(shù)據(jù),從而完成文件系統(tǒng)加載操作。在這個過程中,讀取MRAM的操作室串行的,而讀取各個獨立Flash的操作則是并行進(jìn)行的,故其啟動過程Tmnt_D可以定義為:
Tmnt_D=PDeviceTM_RD+BWA(Tpre+BDatatRC)
(6)
引入公式(3),并考慮到PDeviceTM_RD數(shù)值太小可以忽略,公式(5)可以演變?yōu)椋?/p>
(7)
通過公式(5)可知,針對以對象為索引自上而下的文件啟動方式只受文件數(shù)量和單頁Flash讀取時間影響,而Nand Flash芯片容量和內(nèi)部結(jié)構(gòu)不再直接影響啟動時間。參考3.1節(jié)中各個參數(shù)的數(shù)值范圍,當(dāng)文件數(shù)量為1024,單頁Flash數(shù)據(jù)區(qū)字節(jié)數(shù)為8192, 空閑區(qū)字節(jié)數(shù)為224,Flash讀取時鐘周期為80 ns時,理論上按照公式(5)獲得最大啟動時間為689.28 ms。
通過公式(7)可知,針對以Nand Flash里面的元數(shù)據(jù)為依據(jù)自下而上的文件啟動方式受單個芯片Device的內(nèi)部塊結(jié)構(gòu)和單字節(jié)Flash讀取時間影響,而與Nand Flash芯片個數(shù)關(guān)系不大。參考3.1節(jié)中各個參數(shù)的數(shù)值范圍,當(dāng)單頁Flash數(shù)據(jù)區(qū)字節(jié)數(shù)為2048,單個基片Chip中包含4096塊,每個芯片包含8個基片,Flash讀取時鐘周期為80 ns時,理論上按照公式(7)獲得最大啟動時間為24.17 ms。
通過公式(3)可知,以傳統(tǒng)方式啟動,啟動時間與存儲器的整體規(guī)模直接相關(guān),存儲體容量越大,時間越長。參考3.1節(jié)中各個參數(shù)的數(shù)值范圍,當(dāng)單頁Flash空閑區(qū)字節(jié)數(shù)為64,存儲體包含1個Nand Flash存儲芯片,單個存儲芯片中包含4個基片,單個基片Chip中包含2048塊,單個Block塊內(nèi)部包含64頁,F(xiàn)lash讀取時鐘周期為40 ns時,理論上按照公式(3)獲得最小啟動時間為22.84 s。
由此可見,針對星載固態(tài)存儲器的使用區(qū)間,經(jīng)過分級緩存加速優(yōu)化的啟動流程的最大耗時都遠(yuǎn)遠(yuǎn)小于基于傳統(tǒng)設(shè)計方案的啟動方式的最小耗時。故針對星載固存設(shè)計來說,分級緩存加速的文件系統(tǒng)啟動速度大大優(yōu)于傳統(tǒng)文件系統(tǒng)啟動速度。
本次設(shè)計中,F(xiàn)PGA芯片選用Xilinx公司的XQR2V3000,設(shè)置外部激勵對固態(tài)存儲器上電啟動進(jìn)行控制仿真。通過仿真,基于硬件加速的星載固態(tài)存儲器啟動設(shè)計的性能可以得到更多方面的論證。
1)設(shè)置文件對象數(shù)為1000,每個芯片Device包含4個基片,每個Flash基片(Chip)包含4096的塊(Block),Nand Flash接口讀取時鐘為60 ns,選取不同規(guī)格的Nand Flash進(jìn)行仿真,測試Flash單片容量與啟動時間的關(guān)系,具體如圖5所示。
圖5 不同規(guī)格Nand Flash環(huán)境下固態(tài)存儲器的啟動時間
圖表中的具體數(shù)值如表3所示。
表3 單片容量不同的Nand Flash 的啟動時間
通過圖5的仿真結(jié)果可以看出,當(dāng)單片Page容量很小的時候,兩種方式性能差不多。隨著Nand Flash單片容量的增加,星載固態(tài)存儲器的啟動時間因為采用啟動方式的不同而出現(xiàn)截然不同的特性。在以對象為索引的文件啟動方式下,啟動時間伴隨容量增加而明顯延長。而在以Nand Flash里面的元數(shù)據(jù)為依據(jù)的文件啟動方式下,啟動時間反而逐漸減小并趨于一個穩(wěn)定值。也就是說,當(dāng)單片Page容量超過8 416字節(jié)后,啟動時間不再受單片Page大小的影響。
2)設(shè)置文件對象數(shù)為1 000,每個芯片Device包含4個基片,每個Flash基片(Chip)包含4 096的塊(Block),每頁Page數(shù)據(jù)區(qū)包含4 096字節(jié),空閑區(qū)包含128字節(jié),通過FPGA修改Nand Flash讀取時鐘周期(tRC),測試Flash讀取速率與啟動時間的關(guān)系,具體實驗結(jié)果如圖6所示。
圖6 不同讀取速率下的固態(tài)存儲器的啟動時間
圖表中的具體數(shù)值如表4所示。
表4 不同讀取速率下固態(tài)存儲器的啟動時間
通過對實驗數(shù)據(jù)進(jìn)行解析發(fā)現(xiàn)在兩種啟動方式下,星載固態(tài)存儲器都不同程度地隨Nand Flash接口讀取速率的提高獲得更高的啟動速率,但星載設(shè)備的可靠性要求接口時序擁有一定的時序裕度,故要求使用者根據(jù)具體應(yīng)用環(huán)境選擇合適的Nand Flash接口讀取時鐘周期,從而在高啟動速率和高可靠性之間得到平衡。
在實際的測試板上面,選用Xilinx公司的XQR2V3000作為芯片載體,選用五塊三星公司出品的FLASH 存儲器MMFN08408808S-F和一塊3D_Plus公司出品的MRAM 存儲器3DMR8M32VS8420作為存儲器件,使用YAFFS2文件系統(tǒng),創(chuàng)建10個文件,進(jìn)行斷電重啟操作,記錄上電后到文件系統(tǒng)組織信息搜集完畢的時間。經(jīng)過測試,以對象為索引的文件啟動方式獲得的啟動時間為3.12 ms,以Nand Flash里面的元數(shù)據(jù)為依據(jù)的文件啟動方式獲得的啟動時間為143.47 ms。在相同的實驗條件下,以傳統(tǒng)設(shè)計方式進(jìn)行重啟后,其啟動時間為170.35 s。由此可知,本文通過加入MRAM實現(xiàn)分級緩存的硬件架構(gòu)并設(shè)計了基于分級緩存文件系統(tǒng)的啟動加速算法,這樣的設(shè)計可以大大縮短了星載固態(tài)存儲器啟動時間。
本文從星載固態(tài)存儲器在軌工作環(huán)境出現(xiàn)的問題出發(fā),深入研究星載固態(tài)存儲器傳統(tǒng)啟動策略的優(yōu)化局限,提出一種基于分級緩存加速的星載固態(tài)存儲器啟動及管理算法。分級緩存設(shè)計在硬件架構(gòu)上引入MRAM磁電存儲器來存儲Nand Flash的壞塊信息和文件系統(tǒng)操作中容易變化文件組織信息。針對YAFFS2文件系統(tǒng)的加載過程,分級緩存對關(guān)鍵信息的高吞吐率保證固態(tài)存儲器直接定位對象頭文件而縮短了基于對象索引建立文件系統(tǒng)的時間,也可以通過直接定位更精簡集成的塊元數(shù)據(jù)區(qū)的起始地址來加速以Flash元數(shù)據(jù)恢復(fù)文件系統(tǒng)的進(jìn)程。MRAM的抗輻照以及斷電保護(hù)特性,保護(hù)其內(nèi)部存儲文件數(shù)據(jù)的正確性和實時性,大大提高文件系統(tǒng)可靠性。在本文中,作者對兩種啟動方式下的優(yōu)化設(shè)計進(jìn)行建模,通過性能分析和與傳統(tǒng)算法的比較,以及在星載存儲測試板上的實驗驗證均表明新設(shè)計的啟動時間大大縮短,從而證明基于分級緩存加速的固態(tài)存儲器啟動設(shè)計擁有超越傳統(tǒng)設(shè)計的優(yōu)越性能。