(山東航天電子技術(shù)研究所,山東煙臺 264670)
隨著衛(wèi)星平臺及遙感技術(shù)的不斷發(fā)展,星載平臺對數(shù)據(jù)存儲技術(shù)要求不斷提高,對數(shù)據(jù)存取速度從兆比特/秒已提高到吉比特/秒,對存儲容量的要求也從吉比特提高到太比特。在高性能和大容量需求背景下,與非型閃存(NAND Flash)存儲介質(zhì)以其高吞吐率、大容量、低成本、非易失等顯著優(yōu)勢成為星載固存設(shè)計的首選介質(zhì)[1]。因此,目前各國航天界都已把星載固存的存儲介質(zhì)從20世紀(jì)90年代的靜態(tài)隨機(jī)訪問存儲器(Static Random Access Memory,SRAM)、同步動態(tài)隨機(jī)訪問存儲器(Synchronous Dynamic Random Access Memory,SDRAM)轉(zhuǎn)變?yōu)榕c非(NAND)Flash芯片,并采用多芯片形成陣列式存儲,從而大大提高整個設(shè)備的吞吐能力和容量[2]。
采用NAND Flash芯片作為存儲介質(zhì),較好地解決了星載固存對容量的需求,并降低了成本,但是由于NAND Flash 自身工藝特性而存在一些問題[3-5]:①寫入時必須進(jìn)行糾檢錯編碼以糾正其讀出時的錯誤比特;②出廠時一般有壞塊,擦除和寫入時也可能會產(chǎn)生新的壞塊,需進(jìn)行壞塊管理和替換;③擦寫壽命有限,一旦達(dá)到壽命周期,其存儲穩(wěn)定性將無法保證,因此在使用中要注意損耗均衡,不對局部進(jìn)行過于頻繁的擦寫而導(dǎo)致其過早達(dá)到壽命末期。目前在軌、在研的星載固存設(shè)備均需要對這些問題進(jìn)行處理,以滿足對數(shù)據(jù)可靠性的要求。而為了滿足吞吐能力的要求,一般使用現(xiàn)場可編程門陣列(FPGA)作為控制器實現(xiàn)上述算法,這極大地增加了控制算法的復(fù)雜性,因此有必要探索新的存儲途徑或介質(zhì)。
近年來,基于SATA[6]接口的固態(tài)硬盤(Solid State Drive,SSD)技術(shù)經(jīng)過多年發(fā)展已十分成熟,集成度高、功耗低、價格便宜、可靠性高[7],并且SSD解決了上述問題,采用SSD 作為存儲模塊不需要關(guān)注FLASH 芯片的控制細(xì)節(jié),只需要與SATA 接口進(jìn)行通信。在地面作為新興硬盤技術(shù)已經(jīng)在高端個人電腦、網(wǎng)絡(luò)服務(wù)器[8]等環(huán)境中得到了廣泛應(yīng)用。本文首先介紹采用SSD 研制星載海量固存設(shè)備的優(yōu)勢和不足;其次,對在星載應(yīng)用中的可行性進(jìn)行研究,并對其與數(shù)傳分系統(tǒng)的融合進(jìn)行分析;最后,提出一種以SSD 作為存儲模塊的星載固存設(shè)備設(shè)計方案,并對設(shè)計中的關(guān)鍵技術(shù)和實現(xiàn)難點加以說明。
SSD主要由3部分組成:FLASH 芯片、主控芯片、緩存芯片。目前主流的SSD 主控芯片基本集中在Marvell、英特爾、三星、SandForce、Jmicro 等幾家廠商,其技術(shù)成熟、可靠性高,屏蔽了應(yīng)用FLASH 芯片的控制和可靠性算法問題,使用戶如同操作普通硬盤一樣使用SSD。采用SSD 作為存儲模塊的主要優(yōu)勢體現(xiàn)在如下幾個方面:
(1)擴(kuò)展性強(qiáng)。每個SSD 與主控FPGA 的連接僅占用2 對差分輸入/輸出(I/O)。以Xilinx公司的XC5VFX130T[9]為例,單片提供了20 個GTX(Xilinx公司FPGA 內(nèi)置高速收發(fā)器)單元[10],理論上可連接多至20個SSD。相比單片NAND Flash的至少20個I/O,單片F(xiàn)PGA 能提供更大的存儲容量和數(shù)據(jù)吞吐率,印刷電路板(Printed Circuit Board,PCB)布局布線復(fù)雜度低得多。在不更改設(shè)備硬件的前提下,調(diào)整SSD 的容量即可實現(xiàn)設(shè)備容量的增減。
(2)軟件可靠性高。SSD 使用的SATA 協(xié)議雖然復(fù)雜,但有專業(yè)公司設(shè)計的、經(jīng)過充分驗證的IP核可用,比自行設(shè)計、未經(jīng)充分驗證的NAND Flash控制器軟件可靠性更高。
(3)簡化算法。SSD 可看作多NAND Flash芯片結(jié)合外圍控制電路在更高層次上的一個封裝,對于使用者來說,其屏蔽了NAND Flash使用中的壞塊管理、損耗均衡、糾檢錯編碼等復(fù)雜的算法,這些算法完全由SSD 的主控芯片完成。
(4)成本低。SSD 的主要成本是NADA Flash芯片,生產(chǎn)廠家通過大規(guī)模采購現(xiàn)貨產(chǎn)品可降低其生產(chǎn)成本。
(5)更新?lián)Q代容易。SSD 屬于標(biāo)準(zhǔn)化產(chǎn)品,由生產(chǎn)廠家控制其內(nèi)部接口、芯片等技術(shù)的更新?lián)Q代,而用戶只需要關(guān)注外部SATA 接口即可。
(6)可維修性/可更換性。單個SSD 價格低廉,在載人航天器上使用時,可通過直接更換SSD 模塊完成故障修復(fù),或?qū)τ诓恍枰皶r回傳的科學(xué)數(shù)據(jù)由返回艙帶回地面處理。
本節(jié)主要通過SSD 與FLASH 芯片兩種技術(shù)方案的對比,說明其技術(shù)可行性。
1)運(yùn)行環(huán)境適應(yīng)性問題
星載固存設(shè)備由于運(yùn)行環(huán)境特殊,其可靠性要求與地面不同,地面應(yīng)用環(huán)境的SSD 不具備抗空間輻射的技術(shù)指標(biāo),這是SSD 在空間應(yīng)用的最大問題,對星載應(yīng)用的固存設(shè)備必須進(jìn)行升級篩選、抗輻射加固等可靠性設(shè)計。目前國內(nèi)已有廠商開始提供軍用級的SSD,其存儲介質(zhì)同樣采用工業(yè)級的NAND Flash芯片,通過了軍用設(shè)備標(biāo)準(zhǔn)進(jìn)行溫度、震動、沖擊等篩選試驗,符合MIL-810F 和GJB150環(huán)境測試標(biāo)準(zhǔn)[11]。采用這種SSD 產(chǎn)品與直接使用工業(yè)級NAND Flash 芯片設(shè)計的星載固存設(shè)備在可靠性上并無太大差異。如果輔以加屏蔽殼、獨立冗余磁盤陣列(Redundant Array of Independent Disks,RAID)、增大冗余備份盤比例等方式,可有效解決SSD 星載應(yīng)用的可靠性問題。
2)SSD 使用后的性能下降問題
在地面使用中,微軟Windows 7以后的操作系統(tǒng)均會支持對SSD 的自動優(yōu)化,不會有反復(fù)使用后性能明顯下降的問題。在星載環(huán)境下,沒有該操作系統(tǒng)支持,SSD 的驅(qū)動軟件通常由固存設(shè)備設(shè)計方自行設(shè)計,因此需要自行調(diào)用Trim[12](ATA8協(xié)議中對SSD 進(jìn)行數(shù)據(jù)整理的一條指令選項)指令進(jìn)行優(yōu)化。國內(nèi)某廠商提供的軍用級硬盤已實現(xiàn)了硬件層面的垃圾回收算法,在使用中幾乎不會感覺到硬盤垃圾帶來的影響。
3)數(shù)據(jù)緩沖的需求問題
SSD 使用的存儲介質(zhì)是NAND Flash芯片,其需要以塊為單位擦除后才能再次寫入數(shù)據(jù)。然而,由于SATA 接口硬盤通信命令采用的是ATA 協(xié)議,并沒有擦除命令,因此,SSD 主控在寫入新數(shù)據(jù)時實際上是執(zhí)行先擦后寫模式(當(dāng)然是其要寫入的物理塊“臟”的情況下),這導(dǎo)致在連續(xù)寫入時會出現(xiàn)間歇性地變慢。如圖1所示為某SSD 以4 Mbyte為單位,順序?qū)懭?44Mbyte時的時間分布情況,在第16次/32次寫入時的耗時明顯比平時多,因此,必須使用較大的緩沖區(qū)以平滑寫入速率。對于FPGA主控來說,使用DDR2/DDR3SDRAM 做緩存是理想的選擇,其容量大、帶寬寬,并且DDR2/DDR3SDRAM 控制器通常作為免費的IP 核在FPGA上使用,設(shè)計難度較低。
圖1 某SSD 寫入時間分布圖Fig.1 Distributing diagram of writing time from a SSD
4)整機(jī)質(zhì)量的增加
由于SSD 是一個獨立產(chǎn)品,具有自己的組成結(jié)構(gòu),采用SSD 相比直接采用芯片在整機(jī)質(zhì)量上會少量增加。
5)功耗與性能考慮
對采用SSD 和直接采用FLASH 芯片的固存進(jìn)行對比測試,其結(jié)果如下:在以4塊SSD 組成的原理樣機(jī)測試中,整機(jī)功耗達(dá)21 W,寫入速率僅達(dá)4Gbit/s;而采用了8片F(xiàn)LASH 芯片的星載固存,整機(jī)功耗僅為15 W,寫入速率達(dá)5Gbit/s。
但是需要注意的一點是:在上述測試中,由4個SSD 盤組成的樣機(jī)的容量為480Gbyte,而由8 片F(xiàn)LASH 芯片組成的固存樣機(jī)容量僅128Gbyte,二者之間幾乎相差4倍。因此,可得出這樣的結(jié)論:在速率要求不是很高,功耗限定不很苛刻,而對容量要求較高的場合,采用SSD 更適合。
6)文件管理方式
盡管SSD 采用了與傳統(tǒng)機(jī)械硬盤相同的接口,但是作為星載數(shù)據(jù)的管理仍然無法采用地面通用文件系統(tǒng),這主要是由于通用文件系統(tǒng)是非常復(fù)雜的,需要很強(qiáng)的CPU 處理能力,而星載CPU 均為嵌入式、低功耗、高可靠處理器,其自身計算能力和內(nèi)存、外設(shè)等均無法與地面計算機(jī)系統(tǒng)相比[13]。對存儲數(shù)據(jù)管理時,對于FLASH 的塊(block)、頁(page)的管理和對邏輯區(qū)塊地址(Logical Block Address,LBA,每個LBA 包含512byte)地址管理采用的方法,與現(xiàn)有技術(shù)不同。
通過本節(jié)分析可見,采用SSD 盡管存在一些缺點和不足,但在技術(shù)上是可行的,并且具有軟件可靠性高、研制周期短、容量大等優(yōu)勢。
如果以遙感衛(wèi)星作為星載固存設(shè)備的主要使用場合,對固存的記錄性能要求均達(dá)到幾兆比特/秒,回放性能要求也達(dá)到幾百兆比特/秒到吉比特/秒。然而,由于星載處理器能力非常低,無法解決上述數(shù)據(jù)的存盤處理,實時性也不能滿足要求,因此數(shù)傳/載荷系統(tǒng)間需采用FPGA 處理高速數(shù)據(jù)接口。
對于SSD 作為星載存儲模塊使用的情況,也只能使用FPGA 將數(shù)傳/載荷分系統(tǒng)數(shù)據(jù)接口轉(zhuǎn)換為SSD 使用的SATA 接口,如將低壓差分信號接口、TLK2711接口等數(shù)據(jù)由FPGA 進(jìn)行緩沖,再通過SATA 總線提交給SSD 進(jìn)行存儲,回放過程恰好相反。
1)SSD 性能優(yōu)化技術(shù)
SSD 廠商在讀寫控制中采用了損耗均衡技術(shù),以防止Flash的某些塊過早到達(dá)壽命末期。應(yīng)用該技術(shù)導(dǎo)致在全盤多次寫入后,寫入速率急劇降低。因此需要對SSD 進(jìn)行性能優(yōu)化,以恢復(fù)其寫入性能。性能優(yōu)化的方法一般是通過向SSD 發(fā)送Trim指令,從而使SSD 能夠更加有針對性的進(jìn)行處理,以恢復(fù)寫入速率。
2)SSD 環(huán)境適應(yīng)技術(shù)
由于星載固存設(shè)備應(yīng)用環(huán)境特點,對固存需要有防震動、寬溫級、防輻射等要求。對于商用SATA接口SSD,其接口及緊固件防震動問題需要加以改進(jìn),可對SSD 接口部分進(jìn)行硬件更換。寬溫級SSD目前市場上產(chǎn)品已有很多,可直接采購,而防輻射指標(biāo)目前商用SSD 均不具備,必須加以外部防護(hù),可通過輻射總劑量計算,然后貼裝鉭片等方式進(jìn)行抗輻照加固屏蔽空間輻射。
3)SSD 升級篩選技術(shù)
現(xiàn)貨產(chǎn)品SSD 必須經(jīng)過升級篩選剔除掉其中的不良品后方可用于星載固存。升級篩選過程包括一系列復(fù)雜嚴(yán)格的實驗流程,如結(jié)構(gòu)分析、X 射線檢查、高溫存儲、靜態(tài)老煉、動態(tài)老煉、溫度循環(huán)測試、壽命考核、抗輻照能力評估等方面。
以下給出一種以4個SATAⅡ接口的120Gbyte大小2.5吋SSD 盤作為存儲模塊,以Xilinx公司XC5VFX130TFPGA 作為接口控制芯片,以Synopsys公司SATAⅡIP 核為總線控制器的設(shè)計思路。
1)設(shè)計方案
本節(jié)主要以原理設(shè)計為主,介紹基于SSD 的星載固存設(shè)備的設(shè)計方案。硬件主要由電源板、主控板和固態(tài)存儲板組成,如圖2所示。主控板完成對外部接口的控制、存儲文件管理、SSD 存儲板管理。SSD 存儲板由多塊SSD 硬盤組成,是設(shè)備的存儲實體。電源板則為設(shè)備提供穩(wěn)定的電源及加斷電控制等。主控板、存儲板、電源板通過底板進(jìn)行連接。主控板和固態(tài)存儲板之間采用SATA 線纜實現(xiàn)數(shù)據(jù)傳輸。
如圖3所示,主控板是星載固存的核心控制模塊,是一個以FPGA為核心的高度集成的控制系統(tǒng)。FPGA 通過總線接口芯片與控制總線進(jìn)行交互,以接收指令進(jìn)行數(shù)據(jù)存儲和回放。通過一對高速串行接口芯片與數(shù)傳/載荷分系統(tǒng)模擬板進(jìn)行高速數(shù)據(jù)傳輸。FPGA 同時外掛DDR3SDRAM 作為高速數(shù)據(jù)的緩沖區(qū)使用。
圖2 系統(tǒng)級功能框圖Fig.2 System-level functional block diagram
圖3 主控板功能框圖Fig.3 Controller board functional block diagram
FPGA 內(nèi)部為一個典型的高級可擴(kuò)展接口(Advanced eXtensible Interface,AXI)架構(gòu)系統(tǒng),主要包括以下主要功能模塊:
(1)32 位MicroBlaze 處理器,主要用于實現(xiàn)SATA 協(xié)議的應(yīng)用層,作為SATA 主機(jī),通過ATA指令進(jìn)行數(shù)據(jù)存取服務(wù);
(2)SATA 控制器,實現(xiàn)SATA 協(xié)議的鏈路層和傳輸層;
(3)FPGA 內(nèi)置的4 個GTX 收發(fā)器,用作SATA協(xié)議的物理層,直接與4個SSD 相連;
(4)DDR3 SDRAM 控制器,實現(xiàn) DDR3 SDRAM 的訪問控制;
(5)DMA 控制器,主要實現(xiàn)數(shù)據(jù)在DDR3 SDRAM、SATA 控制器和數(shù)據(jù)輸出輸入接口模塊的高速數(shù)據(jù)傳輸,將處理器從數(shù)據(jù)搬移中解放出來;
(6)總線接口模塊,實現(xiàn)總線接口時序到AXI接口時序的轉(zhuǎn)換;
(7)數(shù)據(jù)輸入輸出接口,實現(xiàn)DDR3SDRAM 和對外數(shù)據(jù)接口間的數(shù)據(jù)交換。
2)測試驗證
測試平臺工控機(jī)插入一塊PCI Express板卡模擬數(shù)傳/載荷分系統(tǒng)數(shù)據(jù)發(fā)送和接收,該板卡使用兩個TLK2711芯片進(jìn)行高速數(shù)據(jù)收發(fā),采用125 M時鐘,16 位寬度,帶寬達(dá)到2 Gbit/s,有效帶寬達(dá)1.98Gbit/s,總速率達(dá)3.96Gbit/s。通過高速電纜連接板卡與SSD 樣機(jī),上位機(jī)軟件進(jìn)行數(shù)據(jù)生成、發(fā)送給PCI Express板卡,由板卡通過TLK2711發(fā)送給SSD 樣機(jī)進(jìn)行數(shù)據(jù)寫入測試,讀出測試時數(shù)據(jù)流方向相反。
寫入測試時,首先通過控制總線通知SSD 樣機(jī)進(jìn)入寫入工作模式,然后通過PCI Express板卡發(fā)送數(shù)據(jù),發(fā)送10min數(shù)據(jù)后停止發(fā)送,最后再次通過控制總線發(fā)送停止指令。
讀出測試時,首先上位機(jī)通知PCI Express板卡進(jìn)行接收,然后通過控制總線通知SSD 樣機(jī)進(jìn)入回放工作模式,回放完成后通過控制總線發(fā)送停止指令。
(1)測試結(jié)果:在上述測試流程完成后,SSD 樣機(jī)在10min內(nèi)記錄完成295Gbyte數(shù)據(jù),平均記錄速率達(dá)到3.93Gbit/s?;胤磐暝撐募臅r10min,平均回放速率達(dá)3.93Gbit/s。在回放過程中,計算機(jī)對數(shù)據(jù)正確性進(jìn)行實時校驗,結(jié)果正確,沒有誤碼產(chǎn)生。經(jīng)過測試表明,該設(shè)計的原理是正確的,能夠完成對SSD 盤陣列控制操作進(jìn)行數(shù)據(jù)讀寫。由于外部數(shù)據(jù)接口速率限制,該測試并未測試出樣機(jī)的最高性能,但是通過SATA 協(xié)議分析儀抓取的數(shù)據(jù)可計算出,該樣機(jī)寫入中的性能在132 Mbyte/s以上(見圖1)。
(2)環(huán)境試驗:在功能與性能測試完成后,對該樣機(jī)進(jìn)行了力學(xué)、85℃高溫老練等環(huán)境試驗,并在試驗中、試驗后進(jìn)行了功能與性能測試,所有功能均正常。
本文提出了采用SSD 硬盤作為存儲模塊研制星載固存設(shè)備的技術(shù)方案,并結(jié)合星載固存運(yùn)行環(huán)境對SSD 的使用提出了可行性分析與設(shè)計、關(guān)鍵技術(shù)解決思路。研究結(jié)果表明,針對星載應(yīng)用環(huán)境,采用SSD 硬盤與FLASH 芯片,相比技術(shù)上可行,成本上更低,標(biāo)準(zhǔn)化程度高,研制周期短,能夠作為要求快速研制和發(fā)射、壽命較短的星載固存設(shè)備存儲模塊使用。對于長壽命、高可靠衛(wèi)星應(yīng)用環(huán)境,對SSD 硬盤的抗輻照情況和加固措施需要開展更加深入的研究。
(References)
[1]高怡禎.基于閃存的星載大容量存儲器的研制[D].北京:中國科學(xué)院空間科學(xué)與應(yīng)用研究中心,2004 Gao Yizhen.Designing of high-capacity storage device onboard based on flash[D].Beijing:Center for Space Science and Applied Research,Chinese Academy of Sciences,2004(in Chinese)
[2]朱巖.基于閃存的星載高速大容量存儲技術(shù)的研究[D].北京:中國科學(xué)院空間科學(xué)與應(yīng)用研究中心,2006 Zhu Yan.Research on high-speed and high-capacity storage technology onboard based on flash[D].Beijing:Center for Space Science and Applied Research,Chinese Academy of Sciences,2006(in Chinese)
[3]M Fabiano,Politecnico Torina,G Furano.NAND Flash storage technology for mission-critical space applications[J].IEEE Aerospace and Electronic Systems Magazine,2013,28(9):30-36
[4]李進(jìn),金龍旭,李國寧,等.適于空間圖像閃存陣列的非與閃存控制器[J].光電子·激光,2012,23(5):866-872 Li Jin,Jin Longxu,Li Guoning,et al.NAND Flash memory controller for image flash array in space[J].Journal of Optoelectronics Laser,2012,23(5):866-872(in Chinese)
[5]彭兵,步凱,徐欣.NAND Flash壞塊管理研究[J].微處理機(jī),2009,30(2):113-115 Peng Bing,Bu Kai,Xu Xin.NAND Flash bad block management research[J].Micro Processors,2009,30(2):113-115(in Chinese)
[6]Serial ATA International Organization.Serial ATA Revision 2.6[S].Beaverton:Serial ATA International Organization,2007
[7]袁飛.固態(tài)硬盤的研究與應(yīng)用[D].成都:電子科技大學(xué),2012 Yuan Fei.Research on and application of solid state drive[D].Chengdu:University of Electronic Science and Technology of China,2012(in Chinese)
[8]田芳,唐瑋,黃嫦蓉.普通固態(tài)硬盤在廣播級硬盤播出上載服務(wù)器中的應(yīng)用[J].大眾科技,2013(7):27-30 Tian Fang,Tang Wei,Huang Changrong.Ordinary SSD drives in broadcast aired upload server application[J].Dazhong Keji,2013(7):27-30(in Chinese)
[9]Xilinx.Virtex-5FPGA user guide[EB/OL].[2010-05-17].http://www.xilinx.com/support/documentation/user_guides/ug190.pdf
[10]Xilinx.Virtex-5FPGA rocket IO GTX transceiver user guide[EB/OL].[2009-10-30].http://www.xilinx.com/support/documentation/user_guides/ug198.pdf
[11]源科.源科推出磐龍V 代SSD[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012,12(1):88 Run Core.Version 5SSD of panlong released by runcore[J].Microcontrollers & Embedded Systems,2012,12(1):88(in Chinese)
[12]American Nantional Standards Institute.AT Attachment 8-ATA/ATAPI command set[S].New York:A-merican Nantional Standards Institute,2009
[13]劉立祥,趙軍鎖,張文君.星載高性能計算的技術(shù)現(xiàn)狀與技術(shù)分析[C]//第十六屆全國抗惡劣環(huán)境計算機(jī)學(xué)術(shù)年會.北京:中國計算機(jī)學(xué)會,2006:126-128 Liu Lixiang,Zhao Junsuo,Zhang Wenjun.Current condition and technical analysis of onboard high performance computing[C]//The 16th National Conference on Severe Environment Computer.Beijing:Chinese Computer Federation,2006:126-128(in Chinese)