穆強(qiáng) 牛躍華 于俊慧 李欣 袁珺 高何
(北京空間飛行器總體設(shè)計(jì)部,北京 100094)
大容量固態(tài)存儲器自20世紀(jì)90年代開始已逐漸應(yīng)用于國際航天領(lǐng)域,隨著半導(dǎo)體技術(shù)的發(fā)展,以Flash器件為存儲單元的大容量固態(tài)存儲器目前已經(jīng)成為航天器的關(guān)鍵配置之一[1-5]。特別是對以獲取地面遙感圖像為目標(biāo)的對地觀測衛(wèi)星而言,存儲容量配置需求成倍增長,主存儲器容量已超過10 Tbit。為了提高圖像質(zhì)量,有效載荷配置也呈現(xiàn)多樣化趨勢,除了主載荷還會配置各類輔助載荷,輔助載荷數(shù)據(jù)存儲需求有著多樣性的特點(diǎn),如短時、突發(fā)性、中低速率輸出、在軌長期工作等不同需求。主存儲器受限于功耗等因素制約,在適應(yīng)多樣化輔助載荷數(shù)據(jù)存儲的靈活性需求上并非強(qiáng)項(xiàng),因此在主存儲器之外增加較小容量輔助存儲器的配置成為一種較為常見的解決方案。如國內(nèi)某對地觀測衛(wèi)星,配置輔助存儲器,該設(shè)備在軌長期開機(jī),連續(xù)存儲衛(wèi)星工程遙測數(shù)據(jù)及長期載荷的部分應(yīng)用數(shù)據(jù),而主存儲器在隨著衛(wèi)星主載荷共同開機(jī)工作,存儲主載荷高速數(shù)據(jù)。
在配置雙固態(tài)存儲系統(tǒng)(即主存儲器加輔助存儲器)的航天器中,由于硬件接口設(shè)計(jì)的差異性,經(jīng)常會對部分設(shè)備的接口進(jìn)行改動,再應(yīng)用于其他航天器時又要進(jìn)行反復(fù)的適應(yīng)性修改,從而帶來不必要的產(chǎn)品研制開銷,并對產(chǎn)品成熟度造成影響。由于應(yīng)用數(shù)據(jù)的使用需求,部分?jǐn)?shù)據(jù)會同時在不同位置進(jìn)行存儲,涉及的接口交叉設(shè)計(jì)繁瑣,同時還增加了系統(tǒng)容錯設(shè)計(jì)的成本和難度。數(shù)據(jù)的分散存儲對數(shù)據(jù)的分配、傳輸、管理提出了新的要求,使與之相關(guān)的航天器數(shù)據(jù)通信協(xié)議、星地操控接口的復(fù)雜性提高,個別航天器出于數(shù)據(jù)存儲方便考慮,甚至配備多個輔助存儲器,各種傳輸接口、協(xié)議設(shè)計(jì)及系統(tǒng)容錯設(shè)計(jì)的復(fù)雜性更是成倍增加。
為了解決上述問題,本文提出應(yīng)用SpaceWire網(wǎng)絡(luò)的分布式存儲系統(tǒng)設(shè)計(jì)。SpaceWire網(wǎng)絡(luò)是ESA的數(shù)據(jù)通信標(biāo)準(zhǔn),已成功應(yīng)用于十余項(xiàng)國際空間任務(wù)中[6-7]。其接口簡單、采用路由式通信等特點(diǎn),對支持分布式存儲系統(tǒng)的接口標(biāo)準(zhǔn)化、系統(tǒng)重構(gòu)能夠起到基礎(chǔ)性作用,使分布式存儲系統(tǒng)對外提供統(tǒng)一的硬件接口和通信協(xié)議,屏蔽內(nèi)部的具體網(wǎng)絡(luò)連接方式,從而簡化航天器系統(tǒng)設(shè)計(jì)。
分布式存儲系統(tǒng)由控制模塊及若干個Flash存儲模塊構(gòu)成,每個存儲模塊均可獨(dú)立工作,實(shí)現(xiàn)數(shù)據(jù)的分布式存儲。根據(jù)實(shí)際應(yīng)用環(huán)境的需求,控制模塊和存儲模塊可置于同一臺設(shè)備中,也可置于不同設(shè)備中,各模塊由SpaceWire網(wǎng)絡(luò)互聯(lián)??刂颇K負(fù)責(zé)SpaceWire網(wǎng)絡(luò)配置及分布式存儲系統(tǒng)的管理,控制各個存儲模塊完成數(shù)據(jù)文件的創(chuàng)建、刪除,數(shù)據(jù)的記錄及回放等。整個分布式存儲系統(tǒng)對外呈現(xiàn)統(tǒng)一的SpaceWire數(shù)據(jù)接口,以模塊邏輯地址作為提供數(shù)據(jù)存取服務(wù)的入口,數(shù)據(jù)源端不需要關(guān)注存儲模塊的物理位置。當(dāng)發(fā)生單存儲模塊故障時,只要修改路由配置就能將數(shù)據(jù)無縫遷移至其他存儲模塊,而數(shù)據(jù)源端可不做任何修改。當(dāng)需要增加存儲容量時,在適合的設(shè)備中增配存儲模塊數(shù)量即可,對外接口及協(xié)議設(shè)計(jì)不會發(fā)生變動。目前,分布式存儲系統(tǒng)可應(yīng)用于航天器中低速率數(shù)據(jù)的存儲,后續(xù)隨著航天器高速通信技術(shù)的發(fā)展成熟,可無縫接入高速數(shù)據(jù)傳輸,整體實(shí)現(xiàn)航天器數(shù)據(jù)存儲的統(tǒng)一管理。
分布式存儲系統(tǒng)網(wǎng)絡(luò)構(gòu)成如圖1所示,各模塊均連接于SpaceWire網(wǎng)絡(luò)中,對載荷設(shè)備提供統(tǒng)一的SpaceWire輸入輸出接口。在實(shí)際設(shè)計(jì)中,控制模塊可不獨(dú)立配備,其控制功能與其他接入SpaceWire網(wǎng)絡(luò)的計(jì)算機(jī)進(jìn)行集成,多個存儲模塊可形成冗余備份,為系統(tǒng)容錯設(shè)計(jì)帶來便利。
圖1 分布式存儲系統(tǒng)網(wǎng)絡(luò)構(gòu)成Fig.1 Network structure of distributed storage system
分布式存儲系統(tǒng)的傳輸協(xié)議分為網(wǎng)絡(luò)控制和應(yīng)用數(shù)據(jù)傳輸兩類,分別利用SpaceWire網(wǎng)絡(luò)的2種尋址方式。
(1)路徑尋址。通過物理端口指定數(shù)據(jù)傳輸目的地,各級路由節(jié)點(diǎn)具有包頭刪除功能,將通過的數(shù)據(jù)包首字節(jié)刪除,把第2個字節(jié)作為數(shù)據(jù)包的新包頭首字節(jié)地址送出。路徑尋址示意如圖2所示。
(2)邏輯尋址。將路由器的物理端口通過路由表映射到某一個邏輯地址上,通過查找路由表確定邏輯地址對應(yīng)的輸出端口,目標(biāo)地址只需要由一個數(shù)據(jù)字符長度的邏輯地址來表示。利用邏輯尋址方式不需要關(guān)注具體網(wǎng)絡(luò)結(jié)構(gòu),因此可屏蔽網(wǎng)絡(luò)連接細(xì)節(jié)。邏輯尋址示意如圖3所示。
航天器網(wǎng)絡(luò)物理連接一旦確定,就具有不可更改的特性,因此網(wǎng)絡(luò)配置基于路徑尋址進(jìn)行,以確保能夠正確訪問對應(yīng)的節(jié)點(diǎn)??刂颇K集中進(jìn)行整個網(wǎng)絡(luò)的配置,包括各個節(jié)點(diǎn)的端口狀態(tài)、通信速率、路由表配置等,配置成功即可為各載荷設(shè)備提供數(shù)據(jù)傳輸服務(wù)。網(wǎng)絡(luò)配置會產(chǎn)生短包、小數(shù)據(jù)量通信,控制模塊通過SpaceWire網(wǎng)絡(luò)采用遠(yuǎn)程存儲器訪問協(xié)議(RMAP)對各節(jié)點(diǎn)工作寄存器進(jìn)行配置,并讀出內(nèi)容以確認(rèn)配置正確。寫入操作命令包見圖4,讀出操作命令包見圖5。
圖2 路徑尋址示意Fig.2 Schematic diagram of path addressing
圖3 邏輯尋址示意Fig.3 Schematic diagram of logical addressing
圖4 RMAP寫入操作命令包Fig.4 RMAP write command package
圖5 RMAP讀出操作命令包Fig.5 RMAP read command package
應(yīng)用數(shù)據(jù)傳輸在網(wǎng)絡(luò)層完成路由,對外屏蔽網(wǎng)絡(luò)連接方式,采用邏輯尋址方式基于路由表查找目的地。應(yīng)用數(shù)據(jù)傳輸量較大,為提高傳輸效率,便于存儲模塊糾錯編碼及回放后地面處理,采用串行傳輸通用協(xié)議(STUP)定長傳輸方式。STUP協(xié)議數(shù)據(jù)包為基本傳輸格式,其內(nèi)部裝載用戶應(yīng)用數(shù)據(jù)結(jié)構(gòu),由數(shù)據(jù)文件標(biāo)志和符合國際空間數(shù)據(jù)系統(tǒng)咨詢委員會(CCSDS)建議的虛擬信道幀(VCF)[8]構(gòu)成,見圖6。
圖6 STUP數(shù)據(jù)包Fig.6 STUP data package
不同的載荷設(shè)備按照協(xié)議要求,將各自的應(yīng)用數(shù)據(jù)組成數(shù)據(jù)包送出,數(shù)據(jù)包通過各級路由器時,在路由表控制下逐級傳輸至指定邏輯地址對應(yīng)的存儲模塊。各類應(yīng)用數(shù)據(jù)的生成速率、時機(jī)、頻度存在差異,因此可根據(jù)其存取特點(diǎn)分配不同的存儲模塊,例如,可分為長期數(shù)據(jù)和短期數(shù)據(jù),或者分為平臺遙測數(shù)據(jù)和載荷數(shù)據(jù)。通常,將需要長期記錄的數(shù)據(jù)集中存儲,將僅在觀測時產(chǎn)生的載荷數(shù)據(jù)及其輔助數(shù)據(jù)集中存儲,每個存儲模塊內(nèi)部數(shù)據(jù)通過文件形式進(jìn)行管理,對于短期數(shù)據(jù)的存儲模塊可短期加電工作,降低系統(tǒng)功耗。
SpaceWire總線采用流控制機(jī)制[9],當(dāng)接收端中的緩沖器有足夠容納8 byte數(shù)據(jù)字符的空間時,發(fā)送1個流控制字符(FCT)到鏈路發(fā)送端的鏈路接口,發(fā)送端鏈路接口接收到FCT控制字符后,可以發(fā)送8 byte數(shù)據(jù)字符。只要接收端的緩沖器有足夠空間,就可向發(fā)送端發(fā)送FCT控制字符。在一個完整數(shù)據(jù)包通信結(jié)束前,其傳輸路徑被占用,不能傳輸其他數(shù)據(jù)包,因此數(shù)據(jù)發(fā)送端需要對發(fā)送數(shù)據(jù)進(jìn)行緩存,避免鏈路傳輸路徑的占用導(dǎo)致數(shù)據(jù)丟失,當(dāng)某端口傳輸數(shù)據(jù)總量達(dá)到總帶寬的80%時,要進(jìn)一步對各節(jié)點(diǎn)的發(fā)送時序關(guān)系進(jìn)行規(guī)劃,降低路徑?jīng)_突。
分布式存儲系統(tǒng)具備系統(tǒng)重構(gòu)能力,當(dāng)部分模塊故障時可對系統(tǒng)進(jìn)行重構(gòu),實(shí)現(xiàn)系統(tǒng)控制和數(shù)據(jù)存儲功能的遷移,提高系統(tǒng)容錯能力。系統(tǒng)重構(gòu)會對數(shù)據(jù)傳輸路徑進(jìn)行重新組織,重新分配各模塊的功能,因此通常會帶來路由表配置的變化,將邏輯地址映射至新的物理端口,從而實(shí)現(xiàn)存儲功能的遷移。系統(tǒng)重構(gòu)一般通過軟件配置信息注入或程序在軌維護(hù)的方式進(jìn)行,使系統(tǒng)在重構(gòu)后的網(wǎng)絡(luò)結(jié)構(gòu)中工作,邏輯尋址方式能夠很好地對外屏蔽網(wǎng)絡(luò)結(jié)構(gòu)的變化,載荷設(shè)備不需要了解網(wǎng)絡(luò)組成細(xì)節(jié),因此不必進(jìn)行任何修改即可適應(yīng),能夠最大化地將故障帶來的更改限制在最小范圍內(nèi)。
控制模塊的控制功能通常由軟件實(shí)現(xiàn),可集成在連接于SpaceWire網(wǎng)絡(luò)中的任意一臺計(jì)算機(jī)中,控制功能的遷移即將該功能轉(zhuǎn)移至另外一臺計(jì)算機(jī)的軟件中,且對應(yīng)的邏輯地址需要映射到連接后者的物理端口。存儲模塊可通過模塊數(shù)量、存儲容量兩方面進(jìn)行冗余,即配置多于實(shí)際需求的存儲模塊,或者每個模塊分配的存儲數(shù)據(jù)量小于其容量,為數(shù)據(jù)存儲、遷移預(yù)留。例如,某系統(tǒng)中配置4個存儲模塊,每個128 Gbit容量,實(shí)際使用3個模塊,第4個作為備份預(yù)留。
以某衛(wèi)星分布式存儲系統(tǒng)的設(shè)計(jì)及應(yīng)用為例,驗(yàn)證本文提出設(shè)計(jì)的可行性和優(yōu)勢。
某衛(wèi)星分布式存儲系統(tǒng)的具體實(shí)現(xiàn)如圖7所示。衛(wèi)星上配置4種輔助載荷,對輔助存儲器數(shù)據(jù)存儲要求為:在衛(wèi)星成像期間,通過SpaceWire總線接收4臺輔助載荷傳輸?shù)膽?yīng)用數(shù)據(jù)、系統(tǒng)管理計(jì)算機(jī)生成的環(huán)境監(jiān)測輔助數(shù)據(jù);在整個壽命期內(nèi),不間斷地記錄衛(wèi)星工程遙測數(shù)據(jù)。衛(wèi)星存儲功能由綜合電子系統(tǒng)實(shí)現(xiàn),分布式存儲系統(tǒng)也依托于綜合電子系統(tǒng)設(shè)備建立,系統(tǒng)共配置4個存儲模塊,分別安裝于系統(tǒng)管理單元、載荷接口單元中,控制模塊的控制功能集成在CPU模塊1、2(位于系統(tǒng)管理單元)中。該分布式存儲系統(tǒng)為4個輔助載荷設(shè)備提供數(shù)據(jù)存儲服務(wù),輔助載荷設(shè)備A、B機(jī)分別占用1個SpaceWire端口。存儲模塊1、2長期開機(jī),用于不間斷地記錄衛(wèi)星工程遙測數(shù)據(jù);存儲模塊3、4用于記錄成像期間的載荷應(yīng)用數(shù)據(jù)及環(huán)境監(jiān)測輔助數(shù)據(jù),非成像期間可關(guān)機(jī)。
整個SpaceWire網(wǎng)絡(luò)以路由單元為核心,路由單元內(nèi)部由3片愛特梅爾(Atmel)公司8端口路由芯片AT7910E構(gòu)成,3個路由芯片間通過雙路互聯(lián)組成環(huán)形網(wǎng)絡(luò),對外提供18個標(biāo)準(zhǔn)SpaceWire端口,通過3級路由表配置,實(shí)現(xiàn)所有節(jié)點(diǎn)的互聯(lián)互通。存儲模塊1~4也應(yīng)用AT7910E作為協(xié)議芯片,CPU模塊1、2和CPU模塊3、4分別與存儲模塊1、2和存儲模塊3、4內(nèi)部互聯(lián),共享協(xié)議芯片接入網(wǎng)絡(luò)。路由單元、存儲模塊均為冷備份設(shè)計(jì),因此常態(tài)下整個網(wǎng)絡(luò)中5個路由芯片同時工作。
系統(tǒng)默認(rèn)CPU模塊1、2作為控制模塊,在故障情況下可通過軟件在軌維護(hù)的方式將CPU模塊3、4(位于載荷接口單元)配置為控制模塊。
圖7 某衛(wèi)星分布式存儲系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Network structure of distributed storage system in a satellite
在圖7的網(wǎng)絡(luò)中,所有節(jié)點(diǎn)工作模式均為冷備份,因此A、B機(jī)分配相同的邏輯地址,如果需要設(shè)計(jì)為同時工作,可修改路由表,分配不同的邏輯地址實(shí)現(xiàn)。各節(jié)點(diǎn)邏輯地址分配如表1所示,其中測試節(jié)點(diǎn)用于系統(tǒng)測試??刂颇K(CPU模塊1、2)通過路徑地址訪問所有路由芯片,集中進(jìn)行路由表配置,表2為控制模塊1、2使用的路徑地址。路由芯片的路由表配置如表3所示。
表1 SpaceWire邏輯地址分配Table 1 Allocation of SpaceWire logical address
表2 控制模塊1、2使用的路徑地址Table 2 Path address of control module 1,2
續(xù) 表
表3 路由芯片路由表配置Table 3 Router table configuration of routing chips
在路由表配置中,路由單元內(nèi)部的雙路互聯(lián)中,默認(rèn)配置為使用端口1~8就近環(huán)路方向互聯(lián),另一環(huán)路方向路徑及端口9~10路徑作為預(yù)留,由于節(jié)點(diǎn)為冷備份設(shè)計(jì),因此使用組適應(yīng)路由方式,切機(jī)后路由表不需要修改。
該衛(wèi)星分布式存儲系統(tǒng)選用的路由芯片為AT7910E,最高可支持200 Mbit/s傳輸速率。對其數(shù)據(jù)傳輸路徑進(jìn)行分析,最大數(shù)據(jù)量通信端口為存儲模塊3、4的接收端口,峰值速率要求約為60 Mbit/s,因此將該衛(wèi)星SpaceWire帶寬設(shè)置為100 Mbit/s,最大傳輸峰值約為總帶寬的60%,能夠滿足使用要求。
分布式存儲系統(tǒng)配置多個控制模塊和多個存儲模塊,相互之間可形成備份關(guān)系。控制模塊功能集成在CPU模塊1、2中,由CPU軟件實(shí)現(xiàn)。CPU模塊1、2為冷備份設(shè)計(jì),控制模塊功能遷移隨其切換同時完成。CPU模塊3、4也可作為控制模塊使用,必要時可在軌修改其軟件,增加相應(yīng)功能。更改后,路由表不需要更改,控制模塊進(jìn)行網(wǎng)絡(luò)配置時使用的路徑地址如表4所示。
表4 控制模塊3、4使用的路徑地址Table 4 Path address of control module 3,4
當(dāng)某個存儲模塊故障時,可將向該模塊傳輸?shù)臄?shù)據(jù)遷移至其他存儲模塊,即修改每個路由芯片的路由表,將該地址的數(shù)據(jù)路由到其他存儲模塊進(jìn)行處理。例如,將邏輯地址40(存儲模塊3)對應(yīng)的路由設(shè)置改為與邏輯地址34(存儲模塊1)相同即可,數(shù)據(jù)傳輸路徑對載荷設(shè)備透明。
在圖7所示的某衛(wèi)星分布式存儲系統(tǒng)中,共配置4個存儲模塊,2個CPU系統(tǒng)作為控制模塊,另外還有2個CPU系統(tǒng)可作為備用控制模塊使用,系統(tǒng)對外呈現(xiàn)一致的SpaceWire物理接口。任意模塊間的切換、系統(tǒng)的重構(gòu)、傳輸路徑的更改均對外屏蔽。與配置雙固態(tài)存儲系統(tǒng)的B衛(wèi)星進(jìn)行對比,如表5所示??梢?在載荷設(shè)備數(shù)量基本相當(dāng)?shù)那闆r下,本文設(shè)計(jì)實(shí)例在物理接口種類和協(xié)議設(shè)計(jì)的復(fù)雜性上顯著優(yōu)于B衛(wèi)星,且使用操作更簡化,在適應(yīng)存儲需求變化及系統(tǒng)重構(gòu)方面優(yōu)勢更為突出。
表5 應(yīng)用效果對比Table 5 Comparison of application effects
配置多種載荷可提高服務(wù)質(zhì)量和應(yīng)用效率,擴(kuò)大用戶服務(wù)范圍,已逐漸成為航天器研制的常態(tài),隨之而來的在軌數(shù)據(jù)存儲需求也更加靈活。本文提出的應(yīng)用SpaceWire網(wǎng)絡(luò)的分布式存儲系統(tǒng),可輔助主存儲器適應(yīng)中低速數(shù)據(jù)存儲、在軌長期工作等需求,擴(kuò)展性良好,在軌具有靈活的重構(gòu)手段,在故障情況下能最大程度實(shí)現(xiàn)系統(tǒng)功能不降級,空間應(yīng)用的優(yōu)勢較為突出,目前已經(jīng)過航天器的在軌驗(yàn)證,工作狀態(tài)良好。隨著SpaceWire-D、Spacw Fibre等技術(shù)的后續(xù)推廣應(yīng)用,在數(shù)據(jù)傳輸時序確定性、通信速率方面還有更大的發(fā)展空間[10],未來可將主存儲器納入分布式存儲系統(tǒng)進(jìn)行統(tǒng)一管理,為航天器提供統(tǒng)一、面向邏輯接口、在軌可重構(gòu)的高可靠數(shù)據(jù)存儲服務(wù)。