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