999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于分級緩存加速的高可靠高速星載固存設計

2019-10-29 08:55:50
計算機測量與控制 2019年10期

(北京空間飛行器總體設計部,北京 100094)

0 引言

作為衛星數據管理系統中的關鍵組成,星載固態存儲器為有效載荷業務、平臺業務、星間中繼通信業務等數據提供存儲管理、回放傳輸等功能[1]。目前,星載固態存儲器主要使用基于Nand FLASH的文件存儲管理系統,其具有非易失性、電可擦除性、可重復編程以及高密度、低功耗等特點。但目前YAFFS法中的索引表使用多級映射方式,其索引表建立過程耗時巨大,從而導致星載固態存儲器存在啟動時間過長的問題。而衛星所處的空間環境充斥著大量的帶電粒子會造成星載固態存儲器運行邏輯錯亂或者工作失效,嚴重時會導致整個星載數據管理系統不能工作。面對這種情況,地面通常會采用星載設備主備份切換或者復位操作來解決在軌出現的問題[2]。同時,空間探測器承載的有效載荷向著數量多,性能高以及多樣化的方向迅速發展,衛星平臺承載的數據流要求越來越高。面對高速的數據輸入,固態存儲器過長的啟動時間會增加存儲數據丟失或者出錯的風險。因此如何減少星上存儲系統的啟動時間、提高快速訪問速度已經成為當前星載數據管理研究的熱點之一。

當前研究趨勢主要集中于兩個方向:1)通過精簡索引表信息來減少需要恢復的數據量。例如Chan-Sul Park[3]提出的用掃描每個Nand Flash塊(block)頭文件空閑區的方式替代掃描每個Nand Flash頁(Page)的方式來建立更精簡的索引表信息。索引表的建立過程以及索引表內容均得到了簡化,但其啟動時間隨著存儲空間的增加而逐漸延長,不適用于大容量的Nand Flash存儲系統;2)通過優化索引表存儲方式來提高索引表建立速度。Keun Soo Yim[4]提出的快照技術(Snapshot)每次關機前將系統中的索引數據存儲于Nand Flash中,在存儲系統啟動后通過讀取快照中的數據來恢復索引表。但這種索引表存儲方式減少了每次上電后對所有Nand Flash空閑區的掃描工作,成功加快了存儲器啟動速度。但其索引表的存儲只在收到關機指令后啟動,對與沒有指令的非預期關機或者突然斷電情況無法啟動存儲。而星上存儲系統中常常存在這樣非預期斷電的情況,故該方式具有很高的不可靠性,不適于在衛星上使用。只包含Nand Flash單一存儲器件的固態存儲器,精簡索引表信息常常受制于Nand Flash存儲體的容量,而修改索引表的存儲方式也會帶來極大的不可靠性。

針對這一問題,分級緩存的新設計采用片內緩存結合小容量非易失存儲器(MRAM)[5]的硬件架構打破這一困局。MRAM其集動態RAM、磁盤存儲和高速緩沖存儲器功能于一身,不僅存取速度快,掉電不流失數據,接口時序與RAM相似,而且存儲單元不受單粒子效應的影響。本文將重點討論如何將具有非易失且具有抗輻照功能的磁電存儲器(MRAM)和Nand Flash存儲器結合實現分級緩存,在以對象為索引的啟動方式下把文件對象頭存儲指針存儲在MRAM中,從而保證在啟動時可以快速定位對象文件地址指針來建立文件系統。若恢復失敗,再以NAND FLASH文件元數據為依據,重新精簡元數據結構并集成為獨立的塊元數據區,對整個存儲體的文件信息快速訪問,從而實現固態存儲器啟動速度和存儲可靠性的大幅度提升。

本文結構如下,第一節主要闡述了基于分級緩存加速的星載固態存儲系統架構。第二節深入解析了基于分級緩存加速的文件系統啟動及管理策略;第三節論述了星載固態存儲器啟動性能分析,并通過實驗結果和以往設計進行了比較,表明了本設計的有效性;第四節對全文進行了總結和展望。

1 基于分級緩存加速的星載固態存儲系統

磁電存儲器(MRAM)[5]中數據存儲是通過直接附著于鐵磁薄膜上具有電感耦合效應的導線來完成的。這種工作機理不僅提高了存儲器的速度、可靠性,降低了功耗,而且在存儲單元尺寸、存儲速度方面也完全可以與DRAM相比擬。在衛星上使用的磁電存儲器經過抗輻照加固和3D疊片封裝,并行疊加的MRAM的數據線各自獨立組成更寬的數據總線,共用地址線和讀寫控制信號,通過片選信號進行選通,如圖1(a)所示,例如3D-plus公司的3DMR8M32VS8420 磁電存儲器,其內部為兩組MRAM存儲基片,每次4片并行組成32位的數據總線,兩組共用17位地址總線和讀寫使能信號,通過片選信號進行選通。

圖1 MRAM和Nand Flash存儲架構

Nand Flash芯片存儲結構中的讀寫操作的基本單元為頁(Page)[6],擦除操作的基本單元為塊(Block)。每頁包含數據區和空閑區,在固態存儲器中空余區用于存儲該頁相關的管理信息。由于Nand Flash的工藝問題,其只支持先擦除再寫入的數據更新方式,此外其內部存在壞塊,在壞塊區存儲數據會造成數據錯誤。Nand Flash出廠時會標注存在的壞塊,但壞塊會在使用中陸續產生。在衛星上使用的Nand Flash存儲器經過抗輻照加固和3D疊片封裝。疊片中并行聯系的Flash共用數據線,通過片選信號進行選通,可以使用一個Flash接口控制模塊進行控制。而隨著存儲容量的增加,星上存儲系統使用多個3D疊片封裝的Nand Flash存儲器,每個Nand Flash存儲器的IO接口各自獨立存在,從而形成Nand Flash的多通道存儲架構[7],如圖1(b)所示。

Nand Flash和MRAM協同工作存儲系統硬件架構,將MRAM接入星載固態存儲系統[8]的下層FPGA中。其和Nand Flash一起受FPGA控制,具體如圖2所示。整個固態存儲器系統按照層次化思想進行設計,其使用CPU作為固態存儲器文件系統YAFFS2的實現載體,使用FPGA通過對Flash頁讀取,Flash頁寫入、Flash塊擦除以及Flash壞塊管理等基本單元操作,為CPU軟件提供硬件接口支持。其中,FPGA內部分為負責接口選通和時序的物理接口管理模塊,負責存儲單元操作的存儲基本單元模塊,負責數據流控制和糾錯的數據緩存模塊,以及和CPU總線通信的CPU接口模塊。

圖2 基于分級緩存的星載固態存儲器硬件架構

2 基于分級緩存加速的文件系統啟動優化設計

2.1 YAFFS2文件系統啟動流程

基于YAFFS2文件系統的固態存儲器啟動流程分為兩種,一種為以對象為索引自上而下搭建文件系統, 一種為以Nand Flash里面的元數據為依據自下而上的恢復文件系統,如圖3所示。

第一種方式中,YAFFS2 使用對象(object)來實例化所有存入閃存的文件,每個對象都有一個對象頭(object header)與之對應。對象頭(object header)存儲文件對象的基本信息,如對象類型、父目錄的對象id、對象名、屬主信息、訪問信息等等[9]。在文件系統掛載時,YAFFS2根據對象頭創建相應文件的對象,進而建立起整個文件系統的組織關系。每當文件發生改動(修改、增加、刪除)后,文件系統都會在該文件后添加一個新的對象頭做為標識,。由于文件有可能發生過多次更改,同一文件可能會對應多個對象頭,但其中只有一個是有效的。在固態存儲器啟動時,需要掃描整個Flash來鎖定有效的對象頭文件,這使得文件系統加載時間隨著Flash容量增大而延長,會出現啟動速度慢的現象。

第二種方式中,YAFFS按照固定大小的數據段來組織文件,并利用NandFlash頁面的空閑區存放ECC(錯誤檢查與糾正)糾錯信息和文件系統組織信息[10]。在系統啟動過程中,固態存儲器會遍歷所有Flash頁的空閑區來見獲取足夠的信息,將頁信息整合為按照塊為單位的塊信息數組(block_info)。遍歷結束后,CPU讀取該數組到緩存中進行管理,并配置文件系統結構。同時CPU在內存中設置chunk_bits數組記錄Flash中所有邏輯頁的使用情況,數組中的每一個位(bit)對應閃存中的一個頁的狀態,若頁被使用則對應位設置為1。當文件系統被卸載時,塊信息數組(block_info)和chunk_bits數組作為檢查點(checkpoint)數據被寫入到Nand Flash中[11]。在下一次加載文件系統時,檢查點數據可以幫助YAFFS2將文件系統快速恢復到上一次卸載前的狀態,而不必掃描整個Flash,從而加快了文件系統的掛載速度。如果文件恢復失敗,YAFFS2讀取塊序號(seq_number)采用逆序掃描的方式獲取閃存上每一塊的信息來恢復文件系統。這樣的遍歷操作也會造成啟動時必須遍歷所有塊,致使啟動時間隨容量增加大幅增長,無法滿足星載固態存儲器的應用需求。

2.2 基于分級緩存加速的啟動及管理策略

通過對啟動流程進行分析可知,第一個從對象出發的啟動方式的關鍵在于對各個文件中對象頭(object header)的定位。第二個從Flash頁內空閑區出發的啟動方式的關鍵在于對索引信息的維護。因此,啟動流程的優化關鍵在于文件對象頭的地址索引,以及塊信息索引表的數據維護。

新的對象頭頁面(Object header)伴隨著文件系統操作而不斷被創建,舊的對象頭頁面不斷失效。本文將這類靈活變化又需要斷電保存的地址信息存入磁電存儲器MRAM中,每次新對象頭頁面被創建時就同步更新對應文件號(ObjectID)在MRAM中的對象頭頁面存儲地址,這樣固態存儲器啟動的時候可以直接讀取最新對象頭文件的存儲指針,減少了遍歷Flash的操作流程。

針對塊信息索引表的數據維護,本文旨在通過精簡文件組織信息內容和優化文件組織信息存儲方式等兩個方面實現啟動流程的優化。在文件組織信息中,Nand Flash存儲體的壞塊信息更新頻率低,查詢率高,適合在吞吐高,斷電保存的MRAM中存儲。因此在本設計中,在MRAM中設置壞塊表記錄Flash中所有塊的好壞塊情況,表中的每一個位(bit)對應Flash中的一個塊,好塊為0,壞塊為1。通過對好壞塊表的查詢可以成功屏蔽壞塊對文件操作的影響。

參考yaffs_PackdTags2Part描述結構內容,提煉文件信息數據,即塊元數據。考慮星載系統處理數據的類型與特點,設置星載固態存儲器的文件系統最多支持1024個文件,同時每個文件的最小單位為一個Flash的塊。這樣對于每個Flash的塊來說,其元數據中的每個屬性都是唯一的,其具體參數如表1所示。

本設計嘗試在Nand Flash中尋找區域集中保存所有的塊元數據,定義為塊元數據區,特別針對星載固態存儲器的多通道系統,在每個擁有獨立IO接口的Flash芯片(Device)中設置保存該Device所有Block塊元數據的塊元數據區,這樣在固態存儲器啟動時可以并行多通道讀取各自獨立的塊元數據區,來獲得整個Nand Flash存儲體的文件系統信息,而不再將每個Block塊都一一遍歷,從而大大縮短啟動時間。其具體存儲分布和更新方式如圖4所示。

圖4 多個Device中塊數據區存儲及更新示意圖

伴隨著星載固態存儲系統的運行,每個文件操作都有可能導致Block塊元數據內容的失效,故需要定時遍歷整個Device來讀取Block塊內部文件信息形成新的塊元數據區文件。從舊的塊元數據區文件尾部開始順序存儲到Flash中。最新一次的完整數據的地址指針伴隨著每次定時更新而跳變,故將這部分數據放入MRAM中存儲。當斷電后啟動時,星載固態存儲器來讀取MRAM來獲得最新一次版本的塊數據區的完整數據,并作為數據恢復的信息參考。將整個存儲體的壞塊表,所有文件的對象頭存儲指針以及所有Flash芯片的塊元數據區存儲在MRAM中進行管理,通過三模冗余存儲設計來保證存儲數據的高可靠性。

3 星載固態存儲系統啟動性能分析

3.1 基本假設

星載固態存儲器的啟動時間與Nand Flash接口時序、容量、內部壞塊數、塊元數據區大小以及塊元數據更新周期等因素有關,依照星上器件使用情況對上述因素進行量化假設:

1)Nand Flash存儲體內部架構以及相關參數在目前星上存儲系統的性能區間如表2所示。

2)Nand Flash讀取操作時,設定時鐘周期為tRC,Flash內部運行時間為trb,讀取數據字節數為Brd, Flash內部數據的讀取時間為:

Trd=7tRC+trb+BrdtRC

(1)

設置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)星載固態存儲器YAFFS2文件系統中文件數設置為WObject個,其中0≤WObject≤1023。

5)單個Device中塊元數據區大小為BWA個Flash數據頁Page,根據定義,即:

設定0≤BWA≤QPage。

3.2 啟動時間建模

根據上一節Nand Flash讀取時間公式(2),對傳統算法的啟動過程進行建模。傳統星載固態存儲器每次啟動需要搜索所有數據頁的空閑區,來尋找對象頭文件,或者獲取塊序號(Seq_Number)用于逆序掃描建立文件系統。因此其啟動時間Tmnt可以定義為:

Tmnt=PDeviceLChipSBlockQPage(Tpre+BSparetRC)

(3)

本文中設計的星載固態存儲器針對兩種YAFFS2 文件系統掛載方式分別設計了基于MRAM的啟動加速算法,下面一一進行建模并估算啟動時間:

1)針對以對象為索引自上而下的文件啟動方式,其啟動過程為讀取MRAM獲得對象頭文件地址指針,然后讀取頭文件內部數據,依次遍歷所有文件后,從而完成固態存儲器啟動操作。故其啟動過程Tmnt_H可以定義為:

Tmnt_H=WObject[TM_RD+Tpre+(BSpare+BData)tRC]

(4)

考慮到TM_RD遠小于Tpre,則公式(4)可以簡化為:

Tmnt_H=WObject[Tpre+(BSpare+BData)tRC]

(5)

2)針對以Nand Flash里面的元數據為依據自下而上的文件啟動方式,其啟動過程為讀取MRAM獲得每個Device中的塊元數據區起始地址指針,然后數據區的塊元數據,從而完成文件系統加載操作。在這個過程中,讀取MRAM的操作室串行的,而讀取各個獨立Flash的操作則是并行進行的,故其啟動過程Tmnt_D可以定義為:

Tmnt_D=PDeviceTM_RD+BWA(Tpre+BDatatRC)

(6)

引入公式(3),并考慮到PDeviceTM_RD數值太小可以忽略,公式(5)可以演變為:

(7)

通過公式(5)可知,針對以對象為索引自上而下的文件啟動方式只受文件數量和單頁Flash讀取時間影響,而Nand Flash芯片容量和內部結構不再直接影響啟動時間。參考3.1節中各個參數的數值范圍,當文件數量為1024,單頁Flash數據區字節數為8192, 空閑區字節數為224,Flash讀取時鐘周期為80 ns時,理論上按照公式(5)獲得最大啟動時間為689.28 ms。

通過公式(7)可知,針對以Nand Flash里面的元數據為依據自下而上的文件啟動方式受單個芯片Device的內部塊結構和單字節Flash讀取時間影響,而與Nand Flash芯片個數關系不大。參考3.1節中各個參數的數值范圍,當單頁Flash數據區字節數為2048,單個基片Chip中包含4096塊,每個芯片包含8個基片,Flash讀取時鐘周期為80 ns時,理論上按照公式(7)獲得最大啟動時間為24.17 ms。

通過公式(3)可知,以傳統方式啟動,啟動時間與存儲器的整體規模直接相關,存儲體容量越大,時間越長。參考3.1節中各個參數的數值范圍,當單頁Flash空閑區字節數為64,存儲體包含1個Nand Flash存儲芯片,單個存儲芯片中包含4個基片,單個基片Chip中包含2048塊,單個Block塊內部包含64頁,Flash讀取時鐘周期為40 ns時,理論上按照公式(3)獲得最小啟動時間為22.84 s。

由此可見,針對星載固態存儲器的使用區間,經過分級緩存加速優化的啟動流程的最大耗時都遠遠小于基于傳統設計方案的啟動方式的最小耗時。故針對星載固存設計來說,分級緩存加速的文件系統啟動速度大大優于傳統文件系統啟動速度。

3.3 實驗結果

本次設計中,FPGA芯片選用Xilinx公司的XQR2V3000,設置外部激勵對固態存儲器上電啟動進行控制仿真。通過仿真,基于硬件加速的星載固態存儲器啟動設計的性能可以得到更多方面的論證。

1)設置文件對象數為1000,每個芯片Device包含4個基片,每個Flash基片(Chip)包含4096的塊(Block),Nand Flash接口讀取時鐘為60 ns,選取不同規格的Nand Flash進行仿真,測試Flash單片容量與啟動時間的關系,具體如圖5所示。

圖5 不同規格Nand Flash環境下固態存儲器的啟動時間

圖表中的具體數值如表3所示。

表3 單片容量不同的Nand Flash 的啟動時間

通過圖5的仿真結果可以看出,當單片Page容量很小的時候,兩種方式性能差不多。隨著Nand Flash單片容量的增加,星載固態存儲器的啟動時間因為采用啟動方式的不同而出現截然不同的特性。在以對象為索引的文件啟動方式下,啟動時間伴隨容量增加而明顯延長。而在以Nand Flash里面的元數據為依據的文件啟動方式下,啟動時間反而逐漸減小并趨于一個穩定值。也就是說,當單片Page容量超過8 416字節后,啟動時間不再受單片Page大小的影響。

2)設置文件對象數為1 000,每個芯片Device包含4個基片,每個Flash基片(Chip)包含4 096的塊(Block),每頁Page數據區包含4 096字節,空閑區包含128字節,通過FPGA修改Nand Flash讀取時鐘周期(tRC),測試Flash讀取速率與啟動時間的關系,具體實驗結果如圖6所示。

圖6 不同讀取速率下的固態存儲器的啟動時間

圖表中的具體數值如表4所示。

表4 不同讀取速率下固態存儲器的啟動時間

通過對實驗數據進行解析發現在兩種啟動方式下,星載固態存儲器都不同程度地隨Nand Flash接口讀取速率的提高獲得更高的啟動速率,但星載設備的可靠性要求接口時序擁有一定的時序裕度,故要求使用者根據具體應用環境選擇合適的Nand Flash接口讀取時鐘周期,從而在高啟動速率和高可靠性之間得到平衡。

3.4 與傳統設計進行對比

在實際的測試板上面,選用Xilinx公司的XQR2V3000作為芯片載體,選用五塊三星公司出品的FLASH 存儲器MMFN08408808S-F和一塊3D_Plus公司出品的MRAM 存儲器3DMR8M32VS8420作為存儲器件,使用YAFFS2文件系統,創建10個文件,進行斷電重啟操作,記錄上電后到文件系統組織信息搜集完畢的時間。經過測試,以對象為索引的文件啟動方式獲得的啟動時間為3.12 ms,以Nand Flash里面的元數據為依據的文件啟動方式獲得的啟動時間為143.47 ms。在相同的實驗條件下,以傳統設計方式進行重啟后,其啟動時間為170.35 s。由此可知,本文通過加入MRAM實現分級緩存的硬件架構并設計了基于分級緩存文件系統的啟動加速算法,這樣的設計可以大大縮短了星載固態存儲器啟動時間。

4 結論

本文從星載固態存儲器在軌工作環境出現的問題出發,深入研究星載固態存儲器傳統啟動策略的優化局限,提出一種基于分級緩存加速的星載固態存儲器啟動及管理算法。分級緩存設計在硬件架構上引入MRAM磁電存儲器來存儲Nand Flash的壞塊信息和文件系統操作中容易變化文件組織信息。針對YAFFS2文件系統的加載過程,分級緩存對關鍵信息的高吞吐率保證固態存儲器直接定位對象頭文件而縮短了基于對象索引建立文件系統的時間,也可以通過直接定位更精簡集成的塊元數據區的起始地址來加速以Flash元數據恢復文件系統的進程。MRAM的抗輻照以及斷電保護特性,保護其內部存儲文件數據的正確性和實時性,大大提高文件系統可靠性。在本文中,作者對兩種啟動方式下的優化設計進行建模,通過性能分析和與傳統算法的比較,以及在星載存儲測試板上的實驗驗證均表明新設計的啟動時間大大縮短,從而證明基于分級緩存加速的固態存儲器啟動設計擁有超越傳統設計的優越性能。

主站蜘蛛池模板: 亚洲成人精品久久| 99热这里只有精品久久免费| 午夜在线不卡| 欧美一区二区精品久久久| 欧美日本在线| 一本大道视频精品人妻| www.日韩三级| 色婷婷色丁香| 中文字幕在线看视频一区二区三区| 91久久国产综合精品女同我| 国产第八页| 91在线播放免费不卡无毒| 99视频在线精品免费观看6| 呦视频在线一区二区三区| 伊人中文网| 日本精品αv中文字幕| 大陆精大陆国产国语精品1024| 尤物特级无码毛片免费| 欧美日韩高清在线| 四虎免费视频网站| 亚洲精品成人7777在线观看| 日本高清有码人妻| 久久香蕉国产线看观看亚洲片| 在线看国产精品| 国内视频精品| 国产成人夜色91| 成人精品午夜福利在线播放| 国产在线无码av完整版在线观看| 欧美日本激情| 精品一区二区三区无码视频无码| 在线观看亚洲成人| 国产尤物视频网址导航| 精品无码人妻一区二区| 亚洲综合久久成人AV| 国产精品七七在线播放| 国产精品成人啪精品视频| 精品视频一区二区观看| 91蝌蚪视频在线观看| 欧美日韩资源| 伊人婷婷色香五月综合缴缴情| 国产福利大秀91| 欧美日韩午夜视频在线观看 | 日韩高清成人| 91福利在线观看视频| 亚洲成人高清在线观看| 特级毛片免费视频| 欧美日韩免费观看| 国产幂在线无码精品| 欧美综合在线观看| 国产精品福利在线观看无码卡| 欧美三级视频在线播放| 国产一在线| 99久久性生片| 亚洲天堂免费| 中文字幕有乳无码| 综合色婷婷| 国产91九色在线播放| 国产精品福利导航| 成人免费一级片| 一区二区偷拍美女撒尿视频| 欧美五月婷婷| 欧美区一区| 国产精品女人呻吟在线观看| 欧美成人区| 亚洲欧美成人在线视频| 久久美女精品| 四虎精品国产AV二区| 亚洲一级毛片在线观| 国产精品香蕉在线观看不卡| 国产成人综合日韩精品无码首页| 久久综合九色综合97网| 亚洲欧美日韩成人在线| Jizz国产色系免费| 亚洲男女天堂| 九九视频免费看| 欧美日本在线播放| 中文字幕啪啪| 伊人91视频| 97在线国产视频| 欧美成在线视频| 野花国产精品入口| 国产精品网址你懂的|