趙云鵬 池騁 周夢 鄭艷 孫璐 王曉偉 張俊
(西安微電子技術研究所,西安 710065)
高性能固態存儲技術在現代航天器,包括空間站、深空探測、對地遙感衛星,特別是高分辨率對地觀測衛星的有效載荷系統中占有非常重要的地位。隨著高分辨率對地觀測載荷的廣泛應用,載荷數據率和數據量都呈指數型增長,這就導致無論是中繼傳輸通道還是對地直傳通道都已無法實時傳輸載荷數據。國內外高分辨率衛星載荷數據率和數據量均已達到10 Gbit/s和10 Tbit的量級,相應的存儲系統性能也要與之匹配,如高分七號衛星固態存儲器的總數據吞吐率達到25.6 Gbit/s,存儲容量達到8 Tbit。
基于高性能固態存儲技術的存儲系統采用統一的系統架構和硬件平臺,形成了標準化的系列產品;突破了高速率數據傳輸、高速率數據識別、高速率數據邊記邊放和指定數據的多維定位等多項關鍵技術;首次實現CPU軟件和FPGA軟件的在軌程序上注功能,豐富了產品自身的健康管理方式,提高了產品在軌可維修性和可靠性。
本文在分析了高分辨率對地觀測衛星需求的基礎上,介紹了基于高性能固態存儲技術存儲系統的架構和關鍵技術的實現方式,并總結了采用該系統架構的優點。
高分辨率對地觀測衛星配備各種類型的高分辨率遙感器,其產生的原始數據速率遠高于一般對地觀測衛星,這就提出了一些新的需求。
1)高速數據傳輸
為了獲取高質量的對地觀測數據,各類遙感器生成的載荷數據最高數據率已達到25 Gbit/s甚至更高。
2)海量數據存儲
高分辨率對地觀測數據在高速存儲時必然要占用海量的存儲資源,載荷數據總數據量已達10 Tbit甚至更高。
3)豐富的文件資源
存儲容量的大大提高使得存儲文件的數量相應增加,最大的文件資源需求已超過1000個。
4)載荷數據多維索引
海量載荷數據的存儲必然要求在有限的過境時間和中繼通道資源下根據多維數據特征(如遙感器標識、星時、文件號等)快速查找定位出用戶所關心的數據,從而大幅提高數傳通道的利用率。
結合以上需求,基于高性能固態存儲技術的存儲系統在實現衛星技術要求的前提下,以標準化、模塊化、可擴展化為原則,可滿足多種高分辨率對地觀測衛星對星上高速、海量數據存儲的應用要求。
在基于高性能固態存儲技術的存儲系統中,數據通道以多路高速串行總線為對外接口;多任務管理與調度功能以基于SPARC V8的國產抗輻照片上系統(SOC)處理器為核心;數據特征識別與分揀功能和存儲陣列讀寫控制功能以大規模現場可編程門陣列(FPGA)為核心;對于數據存儲介質,采用多片非易失的與非閃存(NAND FLASH)器件來實現。在該固態存儲系統中,高速數據通道將采用超大規模并行處理和多線程流水操作來實現,其內部總線最寬處達到512 bit,使得即使在數據緩沖模式下工作的數據讀寫速率也可達到50 Gbit/s以上[1-2]。
基于高性能固態存儲技術的存儲系統的組成如圖1所示。

圖1 基于高性能固態存儲技術的存儲系統組成框圖Fig.1 Block diagram of storage system based on high performance solid state storage technology
圖1所示的基于高性能固態存儲技術的存儲系統中,數據識別和分揀單元可以在高速數據流中按照數據約定格式識別出每一幀數據來自于哪個通道,并將識別后的結果送至相應的數據緩存;它為文件管理系統提供快速索引建立依據,是固態存儲器多維索引回放的關鍵部分。通過該架構,固態存儲器可以實現按文件回放、按時間回放等多樣、靈活的多維索引模式。
基于高性能固態存儲技術的存儲系統具有“歸類存儲和特征檢索”的能力。用戶可以在記錄數據的同時,以不同的速率回放當前數據或歷史數據;可以回放全部數據,也可以指定回放某個載荷、某片CCD或某時間段的數據,甚至可以指定回放某個時間段內某個載荷或某片CCD的數據。這樣靈活的操作模式和基于載荷數據特征的數據訪問方式,可以為載荷數據高級在軌管理提供堅實的系統支撐。
由圖1可知,基于高性能固態存儲技術的存儲系統主要由任務管理單元、高速數據輸入/輸出接口、數據識別與分揀單元和數據存儲陣列組成,下面分別對各個組成模塊的功能進行介紹。
1)任務管理單元
任務管理單元負責接收從1553B總線(或RS485總線等)上發送的各種操作指令,除返回相應的遙測信息外,主要負責生成和維護載荷數據特征索引信息、多任務并行工作的調度以及數據存儲陣列的地址生成和管理工作等。
2)高速數據輸入/輸出接口
這兩個接口是系統高速數據傳輸的通道,其數據傳輸率最高可達25.6 Gbit/s。該接口采用多路高速串行數據傳輸方式,利用高速串行/解串器件的高性能特性,在物理層使用微同軸連接器和電纜為25.6 Gbit/s數據率的數據在設備間傳輸提供解決方案[3]。
3)數據識別和分揀單元
數據識別和分揀單元負責接收來自數據處理器的幀格式載荷數據流,同時按數據協議實時判別并提取每幀數據的特征信息(包括包頭、遙感器標識、包長度、包尾等),將載荷數據按遙感器標識分類緩存在數據緩存區,并通知處理器提取數據特征信息。然后,將具備寫入存儲陣列條件的某個遙感器數據分配至后端數據存儲陣列模板中。同時,該單元還負責將存儲陣列回放數據按照回放數據協議的要求進行編排并轉換為符合數據處理器接收的數據格式進行發送。
4)數據存儲陣列
數據存儲陣列包含n個獨立的數據存儲單元,各個存儲單元在任務管理單元的統一調度下并行工作。每個存儲單元采用總線分時復用的策略解決同時記、放時可能出現的總線沖突問題。每個單元均可以工作在記錄模式或回放模式,也可在記錄的同時進行回放和擦除。每個存儲單元內對存儲數據進行里所(Reed-Solomon,簡稱RS)編解碼,能夠對多個錯誤符號進行糾正,確保數據存儲的可靠性。
為了適應對地觀測衛星的高載荷數據率、多載荷數據靈活索引等要求,基于高性能固態存儲技術的存儲系統需要解決多個技術難點,主要包括以下內容。
1)高速數據傳輸技術
高速數據傳輸主要指25.6 Gbit/s帶寬的高速載荷數據如何可靠的在設備間和設備內部進行傳輸。在該技術中需要解決:設備間或設備內部數據通道的傳輸方式和高速緩存問題;輸入數據在多通道間的分配和同步問題。從傳輸通路上來說,高速數據傳輸主要包括3個方面:高速數據對外接口傳輸、高速數據緩存[4]和高速數據板間傳輸[5]。以記錄模式為例,其數據傳輸通路示意如圖2所示。
在圖2中,高速數據對外接口主要接收外部輸入的16路高速串行數據,其總數據傳輸碼速率為25.6 Gbit/s。為了適應輸入高數據傳輸碼速率的要求,存儲系統在設計時采用了高速串行傳輸方式[6-7],圖3為高速串行傳輸方式示意圖。
如圖3所示,高速串行傳輸方式是利用鎖相倍頻技術在數據發送方將16位并行低速數據總線串化后融入到1位高速串行數據流中傳給數據接收端;接收端將收到的1位高速串行數據流重新展開恢復為16位并行的低速數據總線[8]。采用這種傳輸方式,每個通道的數據傳輸率最大可達到2.5 Gbit/s;在實際使用中,每個通道工作在1.6 Gbit/s,采用16個通道傳輸即可滿足25.6 Gbit/s數據率的需求。
高速數據緩存采用8片第二代雙倍速(DDR2)存儲器并行工作實現,其數據總位寬為256 bit,工作時鐘為250 MHz。高速數據緩存在宏觀上可以看做一個“高速雙口RAM”,其總的數據帶寬為64 Gbit/s。

圖2 記錄模式時高速數據傳輸通路示意圖Fig.2 Schematic diagram of high-speed data transmission path in recording mode

圖3 高速串行數據傳輸方式示意圖Fig.3 Schematic diagram of high-speed serial data transmission mode
高速數據板間傳輸主要解決各個功能板之間的高速數據傳輸,在設計時采用FPGA內部的硬核資源高速收發器接口(GTX接口)來實現。GTX接口的工作原理與TLK2711接口器件相同,也是利用鎖相倍頻技術將16位并行低速TTL數據串化后融入到1位高速串行數據流中進行傳輸。在實際使用中,每路GTX接口的數據傳輸率為2 Gbit/s,共通過16路GTX接口就可以滿足25.6 Gbit/s的要求。
2)高速數據識別技術
高速數據識別技術是指固態存儲器在接收多路高速載荷數據時,首先按照數據控制協議提取每包數據的特征信息(包括包頭、遙感器標識、包長度、包尾等),隨后將提取的特征信息通知處理器,最后通過高級文件管理系統(AFMS)建立相應的索引信息。這樣,所有的數據存儲通道統一在任務管理單元的指揮下,數據集中存儲,每包記錄的數據均具有自己獨特的文件特征標識。該項技術旨在實現固態存儲器“歸類存儲和特征檢索”的能力,為整星增加各類靈活的工作模式提供充分的技術支持。如圖1所示,對輸入高速數據的識別采用了大規模FPGA(V5系列)實現,確保在25.6 Gbit/s的碼流中進行剔除空幀、數據識別分類等功能。
3)高速數據總線分時復用技術
當固態存儲系統工作在邊記邊放模式時,記錄和回放任務并行調度,其核心是閃存(Flash)存儲陣列高速數據總線的分時復用,需要解決物理層面的總線訪問沖突問題。具體而言,對于同一個存儲芯片不能同時讀寫、對于同一塊存儲陣列不能同時讀寫、對于同一條數據總線不能同時讀寫。因此,必須合理規劃整個存儲陣列的物理組成并采用最優的調度策略,對記錄進程和回放進程的硬件沖突進行規避和仲裁。圖4為高速數據總線分時復用的功能框圖。
從圖4中可以看出,固態存儲器整個存儲陣列在物理上對外僅有一條唯一的數據總線,無論在記錄還是回放都是通過該總線進行數據傳輸。當固態存儲器工作在邊記邊放模式時,整個存儲陣列共用該數據總線。因此,必須將時間軸分為記錄和回放兩個時間片,記錄時間片時對應記錄數據占用數據總線,回放時間片時對應回放數據占用數據總線。記錄數據和回放數據的帶寬均為25.6 Gbit/s,因此,對Flash陣列的讀取總帶寬需要大于51.2 Gbit/s。

圖4 高速數據總線分時復用功能框圖Fig.4 Block diagram of time-sharing multiplexing for high-speed data bus
4)載荷數據管理技術
載荷數據管理采用多維查找算法和高級文件管理系統(AFMS)來實現,以滿足高分辨率對地觀測衛星對海量載荷數據通過多種檢索手段快速定位的需求,檢索手段包括按文件號、按文件內偏移量、按星上時、遙感器標識等。高級文件管理系統(AFMS)由文件目錄表(FDT)和主文件分配表(MFT)構成。在設計時,將固態存儲器的整個存儲空間劃分為若干“塊”,塊的大小范圍可以是256 kbyte至2 Mbyte或更大(根據需求特點來設定塊大小)。根據設定“塊”的大小建立相應的一個主文件分配表(MFT)。MFT的數據結構里順序存儲著存儲系統中的每一“塊”的編號和對應的物理地址,以及是否用于文件記錄等。圖5為MFT數據結構圖。

圖5 MFT數據結構圖Fig.5 Data structure diagram of MFT
在MFT的支持下,每個文件可以進行順序存取,也可以隨機存取。每個文件的目錄屬性信息可以設置為定長,采用順序的鏈表設計,保證文件檢索效率。圖6為FDT數據結構圖。

圖6 FDT數據結構圖Fig.6 Data structure diagram of FDT
基于高性能固態存儲技術的存儲系統具有以下優點。
1)存儲空間自主動態分配
新一代大容量固態存儲器存儲容量為8 Tbit~32 Tbit,整個存儲空間可以進行自主動態分配,即16個數據通道輸入的不同載荷的數據可以動態的分配到整個存儲空間中,而與各個通道的數據帶寬無關。這樣,可以保證固態存儲器對整個存儲空間的有效利用[9]。
2)數據帶寬自主分配
新一代大容量固態存儲器輸入數據通道共16路,每路數據帶寬1.6 Gbit/s,共25.6 Gbit/s。在實際工作中,16路輸入通道的數據可能會同時輸入,也可能會某幾路隨機輸入。針對這種情況,固態存儲器可以對總數據帶寬進行自主分配,以適應實際工作時的不同情況,實時處理輸入進來的數據。
3)可擴展性高
新一代大容量固態存儲器具有很好的可擴展性,總帶寬和總容量均可以通過調整存儲陣列板的數量、單個存儲陣列板的傳輸速度以及FLASH的存儲容量進行靈活的配置,從而滿足不同型號對容量和帶寬的需求。
4)在軌可程序上注
新一代大容量固態存儲器首次實現了CPU軟件和FPGA軟件的程序上注功能,可在軌對軟件程序進行升級和更改,從而豐富了產品自身的健康管理方式,提高了在軌可維修性和可靠性。
基于高性能固態存儲技術的存儲系統已經成功應用于以高分七號衛星為代表的多顆衛星中,工作可靠、表現良好。
高分七號衛星中固態存儲器的主要工作模式包括以下幾個。
1)記錄模式
接收外部輸入的最大速率為12.8 Gbit/s的高速載荷數據并以文件形式進行管理;整個存儲空間采用動態管理模式,可根據當前全部存儲空間的占用情況,以一定規則動態分配新建文件的存儲空間;16路輸入通道分為主備接口、獨立工作,可靠性高。
2)回放模式
支持按序號、按時間和按順序多種回放方式,最大輸出速率為12.8 Gbit/s;具備回放暫停/恢復功能,提高了衛星應用靈活性;16路輸出通道分為主備接口、獨立工作,可靠性高;可指定任意1路或多路輸出通道進行數據輸出,提高了衛星數傳通道的利用率。
3)邊記邊放模式
記錄和回放兩種獨立模式任意組合工作。既可以先開始記錄、再進行回放,也可先開始回放、后進行記錄;既可以適應記錄速率大于回放速率,也可以適應回放速率大于記錄速率;既可以實時回放當前正在記錄的數據,也可以回放已記錄的歷史數據。
4)擦除模式
支持全部擦除、序號擦除和預擦除三種擦除方式,即:可以一次性擦除所有存儲的數據、擦除指定文件的數據和擦除指定容量的數據,精確的為后續記錄任務準備好可用的存儲空間。
5)自檢模式
支持功能自檢和芯片自檢,即:自動檢測存儲系統自身健康狀態和自動檢查存儲陣列中所有存儲芯片的健康狀態并對發現的失效存儲塊進行剔除[10]。
本文介紹了高傳輸帶寬海量數據高性能固態存儲技術的實現方式、難點及優點,基于該技術研制的大容量固態存儲器具有高傳輸帶寬、海量存儲以及載荷數據的多維檢索等能力,其傳輸速度、存儲容量等關鍵指標相比于上一代固態存儲器有了近10倍的提高。作為新一代大容量固態存儲器,它形成了標準化的系統架構和硬件平臺,可以滿足高分辨率對地觀測衛星多種應用方式對載荷數據高速、海量存儲和高級在軌管理的需求,適于高分辨率光學成像衛星、高精度立體測繪衛星等后續衛星載荷數據存儲與傳輸的廣泛應用。