王曉偉,彭佳煜,余江南
(中國航空工業(yè)集團公司西安航空計算技術(shù)研究所,陜西 西安 710065)
高性能存儲技術(shù)在現(xiàn)代航空航天系統(tǒng)中占有非常重要的地位,存儲系統(tǒng)是航天航空系統(tǒng)中重要的基礎(chǔ)裝備,其可靠性、安全性、維修性對信息系統(tǒng)具有重要影響。隨著航空航天的蓬勃發(fā)展,大量新技術(shù)的應用以及復雜的用戶需求,必將要求存儲系統(tǒng)大幅度提高操作靈活性、存儲容量以及存儲速率,并且在保證可靠性的前提下盡量縮減成本。與傳統(tǒng)的航空航天產(chǎn)業(yè)相比,對存儲系統(tǒng)的需求變更主要體現(xiàn)在以下幾個方面:(1)成本優(yōu)先,使用低等級、工業(yè)級元器件。(2)冗余容錯設(shè)計,提高系統(tǒng)可靠性。(3)標準化、模塊化設(shè)計,提高系統(tǒng)擴展能力以適應不同客戶需求,減少研制周期。
基于上述的發(fā)展趨勢和需求分析,本文提出了一種以創(chuàng)新性的可重構(gòu)系統(tǒng)架構(gòu)、先進的存儲管理體系、關(guān)鍵級的冗余容錯設(shè)計為核心的低成本、高性能大容量閃存系統(tǒng)。
整個存儲系統(tǒng)由1塊數(shù)據(jù)輸入接口板、1塊主控板、3塊存儲板、1塊壓縮板共6塊功能板組成,所有功能模塊共同插在設(shè)備頂部的母板上。
其中,數(shù)據(jù)輸入接口板負責接收前端相機系統(tǒng)傳輸過來的圖像數(shù)據(jù),對輸入數(shù)據(jù)進行緩存、識別、分揀,轉(zhuǎn)化成存儲需要的數(shù)據(jù)包格式,通過16路GTH接口將數(shù)據(jù)包傳送給主控板。主控板為整機核心控制單元,對外接收上位機遙控指令,并按要求返回存儲系統(tǒng)的狀態(tài)參數(shù),對內(nèi)運行文件管理系統(tǒng),向存儲板的存儲單元傳輸控制命令,同時管理數(shù)據(jù)的復接及分發(fā),通過20路GTH將數(shù)據(jù)包傳輸給10個存儲單元,每個存儲單元對應2路GTH。存儲板為存儲基本單元,以NAND FLASH作為存儲介質(zhì),管理NAND FLASH地址映射關(guān)系及壞塊替換,管理NAND FLASH的接口控制器,將數(shù)據(jù)存儲到NAND FLASH中。壓縮板為存儲后級處理單元,管理對圖像數(shù)據(jù)的壓縮功能。
存儲系統(tǒng)工作在記錄模式時,數(shù)據(jù)輸入接口板接收高速串行圖像數(shù)據(jù),將數(shù)據(jù)幀送至相應的數(shù)據(jù)緩存區(qū)。緩存區(qū)的數(shù)據(jù)達到傳輸閾值后將數(shù)據(jù)送往主控板。主控板作為前端處理模塊,一方面通過16路GTH接收寫入數(shù)據(jù),另一方面通過主控板后端的20路GTH鏈路管理存儲板上的10個存儲單元。當存儲板收到開始記錄指令和所需的數(shù)據(jù)量后,將數(shù)據(jù)發(fā)送給NAND FLASH閃存陣列。存儲系統(tǒng)工作在回放模式時,主控板找到回放文件對應的邏輯地址,然后將其發(fā)送給存儲板。存儲板根據(jù)接收到的邏輯地址,查找映射表得到對應的物理地址,將數(shù)據(jù)從NAND FLASH中讀出來,通過GTH發(fā)送給主控板。主控板將收到的10個存儲單元的數(shù)據(jù)進行組包,在收到壓縮板的數(shù)據(jù)請求信號后,通過與壓縮板相連的8路GTH接口將數(shù)據(jù)傳輸?shù)綁嚎s板,完成數(shù)據(jù)的回放[1]。
數(shù)據(jù)輸入接口板作為存儲系統(tǒng)與用戶之間的數(shù)據(jù)接口,采用Xilinx Virtex-5高性能FPGA并掛載大容量DDR緩存,數(shù)據(jù)輸入接口板與主控板之間為16路GTH互連,根據(jù)不同客戶需求,對外可靈活配備不同的接口,如光纖接口、Cameralink接口等,通過數(shù)據(jù)接口接收來自相機的圖像數(shù)據(jù)流,并根據(jù)高速串行總線數(shù)據(jù)傳輸協(xié)議將輸入數(shù)據(jù)組成系統(tǒng)內(nèi)部幀格式,將圖像數(shù)據(jù)幀通過FIFO和DDR緩存處理后送給主控板。
主控板作為閃存系統(tǒng)的核心控制單元,采用Xilinx Virtex-7高性能FPGA及大容量DDR緩存,與各個存儲板的存儲單元之間通過2路GTH全雙工互聯(lián)。限于FPGA芯片GTH通道數(shù)量,每個Master板可管理 10個存儲單元,通過對存儲單元的靈活配置,既可以根據(jù)用戶存儲速率及容量要求減少存儲板卡裝機數(shù)量,降低系統(tǒng)功耗及重量尺寸,又可以根據(jù)可靠性要求提供冗余設(shè)計,提高產(chǎn)品使用壽命。
主控板的數(shù)據(jù)搬運的主要工作模式有2種,一種是從數(shù)據(jù)輸入接口板取數(shù)送給存儲板的存儲單元,將數(shù)據(jù)記錄到NAND FLASH中;另一種是從存儲板的存儲單元中取數(shù),將NAND FLASH中的數(shù)據(jù)回放出來通過GTH接口送給壓縮板。硬件設(shè)計的架構(gòu)上也相應地分了前后兩部分。每部分都由輸入輸出模塊、DDR控制器、VFIFO和總線構(gòu)成。除此之外,2部分都被以MicroBlaze為核心的控制模塊所管控。各個模塊中大部分采用了AXI總線的方式相互連接。
存儲板設(shè)計為標準板卡,每個板卡容納 3個完全獨立的存儲單元。存儲單元為存儲板的基本單元,采用Xilinx Virtex-7高性能FPGA和MLC型NAND FLASH存儲芯片,輔以大容量DDR緩存,每個存儲單元設(shè)計存儲容量4 Tbit并且存儲單元具有獨立的FLASH地址管理、壞塊管理及接口管理系統(tǒng),面向主控板的是一個只有邏輯地址的存儲區(qū),為主控板靈活組合、配置多個存儲單元提供支持。
存儲板裝配了10個存儲單元,其中在正常工作時使用了8個存儲單元,總?cè)萘繛?2 Tbit,為了延長產(chǎn)品的壽命,在其內(nèi)部采用了磨損均衡算法,32 Tbit容量交替使用,為了進一步確保產(chǎn)品的壽命,額外添加了2個存儲單元作為冗余備份,當在使用過程中發(fā)現(xiàn)某一個存儲單元的壞塊數(shù)明顯增多,無法滿足設(shè)計要求時,使用冗余備份的兩個存儲單元將其替換掉,然后執(zhí)行全部擦除指令即可,不影響產(chǎn)品的正常使用。在數(shù)據(jù)傳送過程中,用于數(shù)據(jù)保護的 ECC 模塊包含在存儲模塊內(nèi)部,用于對寫入數(shù)據(jù)時產(chǎn)生錯誤校驗碼及讀取數(shù)據(jù)時對產(chǎn)生的錯誤進行糾錯的功能。
壓縮板為后級處理單元,負責圖像數(shù)據(jù)的壓縮、加密以及單機數(shù)傳部位的接口管理。在單機工作模式中,支持圖像數(shù)據(jù)的直接數(shù)傳、圖像數(shù)據(jù)壓縮后數(shù)傳或進行離線壓縮,將壓縮數(shù)據(jù)回寫至存儲單元,并在過境時數(shù)傳壓縮數(shù)據(jù)。壓縮板與主控板之間為8路雙工 GTH互聯(lián),對外輸出的4路差分數(shù)據(jù)信號及相關(guān)握手信號。
壓縮板主要由3片Xilinx Virtex-5高性能FPGA、大容量DDR緩存及壓縮芯片組成。其中一片主控FPGA主要完成CAN總線、RS422總體通信、數(shù)據(jù)收發(fā)、與另外兩片F(xiàn)PGA之間各4路GTX數(shù)據(jù)傳輸?shù)裙δ?另外兩片F(xiàn)PGA主要和壓縮芯片完成壓縮功能,兩片為對稱性設(shè)計,其中,除每1片均與主控FPGA通過4路GTX收發(fā)器通信外,各有4片DDR芯片進行數(shù)據(jù)緩存,12片壓縮芯片進行數(shù)據(jù)壓縮。
本設(shè)計采用低成本大容量的MLC型NAND FLASH芯片作為存儲介質(zhì),相對于傳統(tǒng)存儲系統(tǒng)常用的SLC型NAND FLASH芯片,MLC型FLASH擦除次數(shù)大大縮減,SLC 可重復擦寫次數(shù)都在6萬次左右,而 MLC型FLASH只能達到3 000 次,成為產(chǎn)品使用壽命的最大難題。NAND FLASH芯片的磨損均衡技術(shù)就是為了解決 MLC型FLASH 壽命問題,設(shè)計存儲單元獨立管理FLASH壞塊及映射關(guān)系,對所有FLASH塊的擦除次數(shù)進行統(tǒng)計、監(jiān)測,動態(tài)調(diào)整邏輯地址與物理地址的映射關(guān)系,有效利用每一個FLASH塊以降低擦除次數(shù),并使所有FLASH塊擦除次數(shù)“均衡”增長,超過設(shè)定的擦除次數(shù)波動范圍,則優(yōu)先使用擦除次數(shù)最少的塊,以達到磨損均衡的目的。.
相對于傳統(tǒng)存儲系統(tǒng)構(gòu)架,本設(shè)計將每一個存儲單元設(shè)計成一個標準化的“小型存儲系統(tǒng)”,一個主控板上的主控單元與多個存儲板上的存儲單元構(gòu)成一個星形存儲結(jié)構(gòu),存儲單元負責NAND FLASH 存儲介質(zhì)的具體管理操作,對外僅是一個透明的存儲空間,而主控板的主控單元負責對存儲單元的上層調(diào)度及對外接口,保證了系統(tǒng)的可擴展性和開放性。根據(jù)不同的可靠性需求,可以選擇裝機備用存儲單元進行冗余設(shè)計。在應用中,主控板可按地面指令隨時調(diào)整存儲單元的組合數(shù)量及組合方式,即使在壽命末期也可以通過減少存儲單元的組合達到容量、速度降級使用的目的,提高系統(tǒng)運行可靠性。
為了降低成本,本系統(tǒng)大量使用工業(yè)級器件,對空間環(huán)境的適應性降低,因此必須在系統(tǒng)中加入多級容錯設(shè)計。首先內(nèi)部數(shù)據(jù)鏈路全部采用 AURORA協(xié)議,減少信道誤碼率;主控板和存儲板上的DDR緩存全部采用40比特ECC糾錯設(shè)計,降低空間單粒子對DDR芯片的影響;在接收數(shù)據(jù)流中嵌入RS糾錯碼,并在系統(tǒng)出口進行 RS糾錯,減少系統(tǒng)級誤碼概率;在NAND FLASH芯片存儲最底層,加入 RS存儲編碼機制,使得存儲數(shù)據(jù) 0、1負載均衡,降低NAND FLASH芯片讀寫誤碼率,通過多級容錯全面提高存儲系統(tǒng)的可靠性安全性級別。
掉電保護設(shè)計的目的是發(fā)生異常掉電時,有效地保護DDR緩存中沒來得及存儲到NAND FLASH中的數(shù)據(jù)以及各種表項。增加掉電保護功能電路,系統(tǒng)5 V電壓異常掉電時,電路監(jiān)測到外部輸入電壓低于閾值電壓,啟動掉電保護機制,啟用儲能電容進行供電,通知主控端做數(shù)據(jù)備份流程,將緩存中的數(shù)據(jù)寫入NAND FLASH,通過計算最大需要60 ms的時間可以完成寫入,在設(shè)計中儲能電容可持續(xù)保持120 ms為存儲單元供電,留有一定的裕量,在此時間內(nèi)將緩存中的數(shù)據(jù)寫入NAND FLASH[2]。
閃存系統(tǒng)的存儲容量為40 Tbits,共10個存儲單元,8個存儲單元用于存儲有效數(shù)據(jù),2個存儲單元用于備份,其中每個存儲單元存儲容量為4 Tbits,固件中頻率越高,通道數(shù)越多,讀寫性能越強,該芯片可以設(shè)置8個通道,每個通道都獨立于其他通道執(zhí)行操作,互不干擾,如命令執(zhí)行、數(shù)據(jù)傳輸?shù)?因此可以并行地執(zhí)行多個存儲任務,性能相比于單通道,最高可以達到單通道性能的8倍[3]。
本文瞄準航空航天迅猛發(fā)展的市場前景,介紹了一種以高性能低成本的工業(yè)級器件為核心的閃存系統(tǒng),經(jīng)過了在軌飛行驗證,運行狀態(tài)正常。基于該技術(shù)研制的閃存系統(tǒng)具有高傳輸帶寬、大容量、低成本的優(yōu)點,使用磨損均衡、多級容錯、掉電保護等先進技術(shù)提高了系統(tǒng)在軌可靠性,通過核心模塊的標準化、模塊化設(shè)計支撐靈活的系統(tǒng)冗余能力,同時帶來強大的擴展能力以面向不同用戶需求。