針對Flash存儲特性的航天器大容量固態(tài)存儲技術
隨著航天任務的不斷豐富、航天探測技術的不斷提高(如探測器種類增多,相機分辨率提高等),中國空間站等重大戰(zhàn)略規(guī)劃的逐步實施,空間科技數(shù)據(jù)的采集速度與存儲總量需求大幅度攀升,對存儲器的容量、吞吐速率、數(shù)據(jù)管理提出了更高的要求。
本文引用地址:http://cafeforensic.com/article/201610/307928.htm目前航天器所攜帶的固態(tài)存儲器的基本存儲介質(zhì)以SDRAM和Flash為主,F(xiàn)lash讀寫速度較SDRAM慢、操作復雜,但因為基礎工藝的區(qū)別,F(xiàn)lash的存儲密度遠遠超過RAM系列產(chǎn)品,不需要刷新,功耗低,并且擁有非易失存儲特性,在重量、功耗、可靠性極其敏感的航天應用上,F(xiàn)lash將保持巨大的生命力和發(fā)展?jié)摿Α?/p>
基于Flash的存儲系統(tǒng)主要有固態(tài)硬盤和介質(zhì)直接管理兩種方式。前者目前廣泛應用在筆記本、服務器等商用領域,在存儲設備內(nèi)部,通過FTL(flash transition Layer,閃存轉(zhuǎn)換層)的轉(zhuǎn)換,可處理SATA命令,但在硬件接口及軟件系統(tǒng)方面照搬傳統(tǒng)磁盤管理技術,對存儲特性利用并不充分:硬件SATA接口標準無法滿足Flash存儲系統(tǒng)性能要求,成為瓶頸;以文件系統(tǒng)為代表的數(shù)據(jù)管理策略,大都考慮磁盤環(huán)境進行優(yōu)化,F(xiàn)lash的優(yōu)勢無法充分體現(xiàn)。航天級應用需要采用介質(zhì)直接管理的方式,針對Flash存儲特性,從底層進行硬件結構設計,在滿足任務的容量、速度、容錯等關鍵需求的同時,盡量降低系統(tǒng)復雜度,逐步實現(xiàn)數(shù)據(jù)有效管理策略。
1 Flash器件的存儲特性介紹
本文以3D—PLUS公司的NAND型32Gbits(4G×8)Flash疊裝模塊作為存儲介質(zhì)為例,介紹Flash存儲特性。
1.1 并行性
該模塊由8片4G位(512Mbits×8)SAMSUNG公司的NAND Flash芯片疊裝而成,公用對外的8位寬I/O總線。該Flash芯片每2K字節(jié)的主存儲區(qū)(Main Array)外加64字節(jié)的空余區(qū)(Spare Array)組成一頁(Page),64頁組成一個塊(Block),4096塊組成一個器件(Device)。
由于Flash存儲模塊的指令與數(shù)據(jù)公用I/O端口,對時序要求較為嚴格,但從應用的角度來看,由于各組I/O之間無依賴性,非常容易實現(xiàn)并行擴展。3D plus公司提供的存儲模塊通過簡單的片選邏輯,即可封裝多個Flash存儲芯片。在航天實際任務應用中,我們也可以方便的通過并行總線技術,進行擴展,提高速度、提高容量。
1.2 最小操作單位及編程時間
寫操作最小單位為“頁”。寫FLASH的過程分為兩步,首先將命令、地址以及數(shù)據(jù)以字節(jié)方式寫入芯片內(nèi)部緩存(也就是“加載”,最快周期為50 ns)后,芯片內(nèi)部需要一個內(nèi)部編程的過程,才可以確定編程是否成功。典型時間tPROG為300μs,最大700μs。在編程過程中,芯片不響應外部命令,極大的降低了Flash的寫入速度,是Flash應用的難點之一。
讀操作通常也是以頁為單位進行,但相對靈活些,也可以通過在輸入地址過程中直接定位某一字節(jié)讀取。在輸入命令和地址后,需要一個等待時間tR后才可以將數(shù)據(jù)通過讀脈沖讀出。tR最大值為25μs。擦除操作必須以“塊”為單位進行,每次必須同時擦除一個塊內(nèi)的全部64頁的數(shù)據(jù)。在擦除的命令和地址輸入后,需要等待時間tBERS后才可以確定擦除是否成功。tBERS的典型時間為2 ms,最大為3 ms。
1.3 無效塊
NAND型FLASH芯片的特點是在出廠時就存在一定比例的無效塊(Invalid Block),在芯片的使用過程中,有可能還會有新的無效塊產(chǎn)生,具體表現(xiàn)為在編程或擦除過程中出現(xiàn)編程失敗或擦除失敗的情況。對無效塊的讀操作是允許的,但由于對無效塊的寫和擦除操作應盡量避免。壞塊隨機分布,難以從工藝上根本消除。
2 航天存儲系統(tǒng)設計及應對技術措施
2.1 系統(tǒng)設計
文中以3D—PLUS公司的NAND型32Gbits(4Gbx8)Flash疊裝模塊作為存儲介質(zhì),介紹航天實際應用的Flash存儲128Gbits容量方案。存儲控制采用FPGA集成全部控制模塊,負責系統(tǒng)工作流程執(zhí)行和狀態(tài)維護。
在每次系統(tǒng)重新加電后,硬件電路將自動遍歷整個存儲區(qū)的簇使用記錄信息,每64簇的簇使用信息組成一條塊信息,全部塊信息構成“塊分配表”,即BAT(Block Assignment Table),包含F(xiàn)lash的當前使用信息,作為存儲狀態(tài)控制的依據(jù)。硬件初始化結束后,BAT表送往計算機內(nèi)存,計算機軟件在完成對CPU初始化設置后,進入常規(guī)任務管理,包括數(shù)據(jù)存儲、數(shù)據(jù)回放、數(shù)據(jù)讀取、數(shù)據(jù)擦除。FPGA與計算機通過
HPI總線通訊,計算機主板通過CAN總線與上位機通訊,實現(xiàn)指令遙控遙測等功能。存儲控制實現(xiàn)以硬件為主,與地面通訊交互功能以軟件為主。
為了保證存儲數(shù)據(jù)可靠,實際應用中在存儲控制模塊中對存儲數(shù)據(jù)進出Flash存儲介質(zhì)的端口進行RS編譯碼,有效檢錯、糾錯,避免單粒子翻轉(zhuǎn)造成存儲數(shù)據(jù)錯誤,并提交檢糾錯信息至遙測工程參數(shù)。系統(tǒng)擁有回復出場初始化的命令,當檢測到存儲系統(tǒng)出現(xiàn)較為嚴重的異常時可以恢復存儲系統(tǒng)至出場狀態(tài)。同時可以增加存儲電路板備份板,由復接器控制冷備或者熱備,提高系統(tǒng)可靠性。
2.2 并行總線技術和“簇”的概念
疊裝模塊包含8片F(xiàn)lash芯片,公用對外的8位寬I/O總線。128 Gbits配置的存儲區(qū)模塊由4個Flash疊裝模塊構成,將4片F(xiàn)lash控制總線、狀態(tài)總線互連,而I/O總線擴展為32位,其中4片F(xiàn)lash的8位寬I/O總線分別對應32位總線的不同數(shù)據(jù)位段。即4片并行的FLASH芯片相同地址的頁被看作一個基本單位,即“簇”,因此1“簇”的基本存儲空間為2 kx32 bits。經(jīng)擴展后,一簇容量為64 kbits,64簇組成一個塊(Block)。
4倍總線擴展的系統(tǒng)操作速度將提高為原來的4倍。同時可以非常簡單的進行更多的擴展,但考慮到控制總線的驅(qū)動負載能力,更多的并行擴展可能帶來時鐘沿建立時間不穩(wěn)定,可以使用總線驅(qū)動器增強驅(qū)動負載能力。
2.3 流水線技術
為了提高系統(tǒng)的存儲速度,根據(jù)FLASH芯片的操作特點,在對存儲區(qū)模塊寫入時還將采用流水線操作的方式。將多片F(xiàn)LASH分成若干組,每次加載(寫)一頁的數(shù)據(jù)到一組Flash芯片后,該組芯片總要有大約300μs的內(nèi)部編程時間,在此期間盡管不能對該組芯片進行其它操作,但可以立即進行另一組芯片的加載。如果采用16 MHz的寫時鐘(周期62.5 ns),加載2k數(shù)據(jù)的時間大約為130μs左右,當?shù)?組芯片加載完畢后,第一組芯片的編程過程通常已經(jīng)結束,待系統(tǒng)確認后,開始下一個循環(huán)。根據(jù)寫操作典型事件,本設計采用4級流水線寫操作,便可以基本保證在宏觀上實現(xiàn)對存儲區(qū)的全速率無間斷連續(xù)數(shù)據(jù)寫入。圖4為流水線寫操作的原理示意圖。
2.4 壞塊管理
對于初始無效塊,將被直接跳過,后續(xù)數(shù)據(jù)將被加載到該無效塊在本流水級內(nèi)后續(xù)的第一個有效塊中。如果在使用過程中出現(xiàn)了新增的編程無效簇,該簇所處的塊將被定義為程無效塊,系統(tǒng)將把該塊所在流水級內(nèi)后續(xù)的第一個有效塊作為替代塊,編程出錯的數(shù)據(jù)將被重新加載至替代塊內(nèi)的相同偏移頁地址的簇地址空間,該流水級后續(xù)的數(shù)據(jù)將被加載到替代簇地址的后續(xù)地址中。
3 民用Flash存儲系統(tǒng)的啟示
民用Flash存儲系統(tǒng)有兩個特點,一是Flash存儲介質(zhì)隨著半導體技術的提高密度增加很快,但由于工藝原因,對單粒子效應敏感,密度越大,可能造成的混亂越嚴重,不適用于航天環(huán)境。二是存儲管理方式研究較為深入,極大的方便了用戶使用,借鑒意義較大。
民用Flash存儲系統(tǒng)管理類別較廣,大體分為Flash加速卡、Flash存儲陣列與分布式集群系統(tǒng),大多關注3個關鍵技術,基于I/O棧調(diào)整與重構的存儲性能優(yōu)化、系統(tǒng)級可靠性、體積與能耗。代表性Flash存儲系統(tǒng)對比見表1。而從航天存儲系統(tǒng)現(xiàn)狀來看,系統(tǒng)軟件層的I/O棧優(yōu)化尚無必要,而關注全局磨損平衡的系統(tǒng)級可靠性研究參考性較強,體積與能耗的相關考量也有相互借鑒的地方,分布式集群系統(tǒng)的設計思想有一定的啟發(fā)性。
系統(tǒng)級可靠性研究中磨損平衡的提出,是由于Flash存儲單元的多次擦除,會削弱其保存電子的性能,使得數(shù)據(jù)易受干擾。閃存的擦除次數(shù)在一萬到十萬次之間,并且隨著存儲密度增加而降低。民用存儲系統(tǒng)一般在FTL內(nèi)實現(xiàn)磨損平衡策略。動態(tài)磨損平衡在擦除與寫入的過程中,綜合考慮存儲單元的磨損程度,實時進行平衡;靜態(tài)磨損平衡則是定時交換讀寫頻次低的冷數(shù)據(jù)與頻次高熱數(shù)據(jù)的存儲位置,又可分為隨機平衡機制,與基于擦寫次數(shù)的平衡機制。
分布式集群存儲系統(tǒng)的設計與航天應用的流水操作思想較為相似,都有著用空間換取速度的指導思想。不過前是從更高層次進行的整體系統(tǒng)設計,包括系統(tǒng)架構、FTL優(yōu)化等措施,解決Flash接口速率遠遠小于數(shù)據(jù)吞吐速率需求的問題,但需要考慮大規(guī)模擴展帶來的時延和可靠性問題。分布式集群存儲系統(tǒng)突出特點是擁有良好的擴展性,優(yōu)化存儲狀態(tài)更新查詢方式、選擇相適應的低頻低功耗的CPU,有效降低整體功耗。
航天科技任務越來越豐富,科學數(shù)據(jù)的種類與數(shù)量不斷增加,對存儲系統(tǒng)數(shù)據(jù)管理要求也越來越高。相比于航天用存儲系統(tǒng)硬件架構從磁帶機、磁盤到固態(tài)存儲器的多次升級,相應的數(shù)據(jù)管理研究與應用較為落后,如高效壞塊管理、長時間在軌磨損平衡、適應航天綜合電子平臺的文件操作系統(tǒng)等。目前國內(nèi)外民用基于Flash的固態(tài)存儲系統(tǒng)架構與優(yōu)化技術研究進展較快,也更為豐富,對航天應用具有較強的啟發(fā)性。
4 結束語
針對Flash存儲特性,本文以航天任務為背景,提出一種基于直接控制存儲介質(zhì)的Flash存儲系統(tǒng)。發(fā)揮Flash存儲介質(zhì)并行性的優(yōu)點,應用并行總線擴展技術;針對寫操作編程時間長的問題,合理采用多級流水線技術;針對Flash壞塊現(xiàn)象,采取簡單可靠的壞塊管理策略。并且調(diào)研民用Flash存儲技術與設計思想,探討航天存儲技術的研究方向。
評論