宋 琪,李 姍,朱 巖
(1.中國科學院空間科學與應(yīng)用研究中心 北京 100190;2.中國科學院大學 北京 100019)
星載固態(tài)存儲器數(shù)據(jù)管理結(jié)構(gòu)的設(shè)計
宋 琪1,2,李 姍1,2,朱 巖1
(1.中國科學院空間科學與應(yīng)用研究中心 北京100190;2.中國科學院大學 北京100019)
為了提高星載存儲器的數(shù)據(jù)管理水平,應(yīng)對Flash應(yīng)用復雜、國內(nèi)半導體工業(yè)水平較低、航天任務(wù)性能可靠性等需求提升等挑戰(zhàn),基于實際衛(wèi)星任務(wù)需求,結(jié)合四級流水、四倍總線擴展技術(shù),提出一種的多分區(qū)數(shù)據(jù)管理結(jié)構(gòu)設(shè)計,通過分析和仿真介紹了數(shù)據(jù)流通路的特點及性能,存儲器吞吐率接近1 Gbps,能夠有效滿足航天任務(wù)需求。同時根據(jù)典型數(shù)傳系統(tǒng)數(shù)據(jù)處理流程,給出了此數(shù)據(jù)結(jié)構(gòu)設(shè)計下由地面接收數(shù)據(jù)逆向?qū)ぶ返挠嬎惴椒ǎ趯嶋H應(yīng)用中能夠大大降低地面測試、數(shù)據(jù)分析工作的復雜度。
固態(tài)存儲器;數(shù)據(jù)管理結(jié)構(gòu);數(shù)據(jù)通路;數(shù)據(jù)逆向?qū)ぶ?/p>
星載固態(tài)存儲器是航天器數(shù)據(jù)傳輸系統(tǒng)的關(guān)鍵設(shè)備,用于儲存衛(wèi)星載荷在軌產(chǎn)生的數(shù)據(jù),待衛(wèi)星過境時回放至地面?;贔lash的星載固態(tài)存儲器由于數(shù)據(jù)掉電不丟失、抗震性好、存儲密度高等優(yōu)點[1],應(yīng)用越來越廣泛,在歐美日等國家多個航天任務(wù)[2-3],以及我國探月工程等任務(wù)中成功應(yīng)用。由于Flash的特性以及星載電子技術(shù)的限制,無法直接移植常見商用數(shù)據(jù)管理方法,一般采用FPGA直接管理FLASH等存儲介質(zhì)的方式,提高存儲器性能和可靠性。數(shù)據(jù)結(jié)構(gòu)的設(shè)計主要包括兩個方面,一是數(shù)據(jù)存儲與索引結(jié)構(gòu),二是數(shù)據(jù)流設(shè)計結(jié)構(gòu),對數(shù)據(jù)和數(shù)據(jù)流的組織管理更底層、直接。由于數(shù)據(jù)結(jié)構(gòu)特殊,對數(shù)據(jù)尋址的分析方法在實際運用中也極為重要。
由于 Flash寫入過程中,在數(shù)據(jù)加載完之后需要較長的內(nèi)部編程時間,導致總線使用率低下、寫入速度慢。故在為了滿足航天任務(wù)需求,基于 Flash的星載固態(tài)存儲器常用多級流水技術(shù)和并行數(shù)據(jù)總線擴展技術(shù)提高寫入速度和容量。數(shù)據(jù)管理管理結(jié)構(gòu)與流水操作、并行擴展息息相關(guān)。
存儲器寫入速度是存儲器技術(shù)的瓶頸之一[4],目前主流解決方法為流水操作技術(shù)和并行位擴展。Flash的四級流水寫入和位擴展,需要進行專門的物理拓撲和數(shù)據(jù)結(jié)構(gòu)設(shè)計,數(shù)據(jù)組織和尋址有著直接的影響。
目前FLASH芯片寫入周期間隔最小為25 ns,編程時間最少300 μs,實際應(yīng)用中約為400~500 μs,最大不超過700 μs。存儲器通過四級流水即可基本實現(xiàn)無中斷寫入。更多級數(shù)的流水會導致復雜度提高,星載設(shè)備可靠性要求嚴格,故選用四級流水方案,即可實現(xiàn)整體無縫寫入,將總線使用率提高四倍。同時,為了配合星載數(shù)據(jù)鏈路數(shù)據(jù)位寬要求、提高存儲器的容量,采用四倍總線并行擴展,示意圖如圖1所示。Flash芯片I/O位寬為8位,四組芯片并行擴展為 32位,具體操作時將4頁并行的FLASH視為一個整體“簇”統(tǒng)一操作。理論上只要增強I/O驅(qū)動能力,即可擴展更多倍數(shù)。但考慮到FPGA緩存資源、PCB布線要求、信號完整性等等因素,最終采用四倍擴展。在32 MHz的工作頻率下,此方案能夠?qū)崿F(xiàn)接近1 Gbps的Flash吞吐率,性能優(yōu)越。
圖1 四級流水寫FLASH原理示意圖
在四級流水、四倍總線擴展的條件下,芯片的劃分結(jié)構(gòu)如圖2所示。疊裝模塊M0~M3內(nèi)相同序號的芯片CHIP n(n =0~7)將被看作一個并行擴展的組,以“G”表示,共有8組;同時這8組芯片分別屬于4個流水級,每個流水級有2組芯片Gx0和Gx1(x=0~3),分別對應(yīng)每個流水級的低256 k簇以及高256 k簇物理空間。由于每個FLASH芯片中每64頁組成一個“塊”,因此每組并行FLASH芯片有4096個塊,每個流水級有8192個塊。
圖2 四倍總線擴展及芯片的流水劃分示意圖
在存儲過程中,數(shù)據(jù)將以簇(4頁)為基本單位,以四級流水線的方式,按照軟件分配的分區(qū)地址,順序加載到各分區(qū)的物理空間中。當任一外部通道的輸入數(shù)據(jù)在緩存控制模塊中滿4簇的數(shù)據(jù)量后,寫Flash啟動,按照流水線順序依次將4簇數(shù)據(jù)加載入相應(yīng)的4個存儲區(qū)簇地址空間中。以通道0(對應(yīng)分區(qū)0)為例,通過接收器接收到的高速輸入數(shù)據(jù)的第0簇將被加載到G00組芯片第0塊第0頁,以此類推。當4個流水級的第0塊0頁均加載完畢后,后續(xù)的數(shù)據(jù)將被加載到第0流水級G00的第0塊1頁。具體寫入Flash的流程如圖3所示。
圖3 寫入流程圖
固態(tài)存儲器需要軟硬協(xié)同工作,一般高速數(shù)據(jù)流的處理均由硬件負責[5]。Flash在應(yīng)用中最大的問題,在于Flash加載數(shù)據(jù)后需要較長的內(nèi)部編程時間,所以固態(tài)存儲器的寫入速度較為受限。實際應(yīng)用中常用多級流水與并行擴展技術(shù),提高速度,擴充容量。隨著Flash工藝的提升,單片F(xiàn)lash的容量越來越大,F(xiàn)lash的基本單位頁的容量也成倍提高,且高級數(shù)據(jù)管理技術(shù)對數(shù)據(jù)緩存的要求也越來越高。加上太空工作環(huán)境嚴苛對器件要求高,國內(nèi)半導體工業(yè)基礎(chǔ)較為薄弱且面臨著嚴密的國際技術(shù)封鎖,國內(nèi)高等級、超大規(guī)模集成電路芯片嚴重短缺。綜合以上情況,必須使用外置緩存滿足Flash寫入數(shù)據(jù)的緩存需求。
外置緩存可選用SRAM、SDRAM、SSRAM等介質(zhì)模塊。SDRAM控制較為復雜,SSRAM供貨少價格奇高,故如果航天任務(wù)數(shù)據(jù)產(chǎn)生速度較低,則綜合考慮使用成本低、易操作的SRAM,在32 MHz的工作頻率下緩存吞吐率可達到512 Mbps,若速度較快,則使用SDRAM,在工作在64 MHz的工作頻率達到接近1 GMbps的緩存吞吐率。
2.1I/O復用產(chǎn)生的數(shù)據(jù)加載不連續(xù)
由于雙口RAM或SSRAM價格高,貨源稀缺,所以外置緩存輸入輸出復用 I/O。寫入優(yōu)先,所以讀取緩存數(shù)據(jù)供Flash四級流水加載數(shù)據(jù)期間,如果寫入請求,則緩存讀取加載Flash的過程將被暫停。SDRAM指令操作較多,速度快,為了直接呈現(xiàn)沖突情況,選用SRAM設(shè)計來呈現(xiàn)I/O復用引起的加載不連續(xù)。SRAM緩存四級流水加載的過程仿真如圖4所示,從圖中選中的片選信號flash_ce_o_3可以區(qū)分四級流水的交接。而一級流水之內(nèi)數(shù)據(jù)的間斷是由于仿真中設(shè)置寫入速度較高,寫入SRAM較為頻繁,占用I/O輸入,暫停輸出,造成Flash加載數(shù)據(jù)暫停。如果在Flash加載數(shù)據(jù)過程中,沒有數(shù)據(jù)寫入SRAM的情況,則加載過程不會暫停,數(shù)據(jù)連貫。
圖4 SRAM緩存I/O復用造成的數(shù)據(jù)加載間斷
2.2高速SDRAM突發(fā)讀寫在連續(xù)數(shù)據(jù)流中的使用
SDRAM的操作較為復雜,如需要上電初始化,使用過程中需要刷新,讀寫選通地址前需要激活,操作完畢后需要預(yù)充電關(guān)閉等。而且在使用中,突發(fā)讀寫之間需要多種操作,會導致數(shù)據(jù)流不連續(xù)。
為了降低指令操作時間,提高總線使用率,所以根據(jù)數(shù)據(jù)結(jié)構(gòu),將SDRAM的讀寫數(shù)據(jù)最小單位設(shè)為256字,連續(xù)進行同一行地址下的32次8字突發(fā)讀寫,形成連續(xù)的256字突發(fā)。這樣保證了每一次讀寫,不需要切換SDRAM行地址,避免在加載過程中頻繁激活、預(yù)充電等操作。同時,存儲器使用的RS編碼組長度同樣能為256字,SDRAM的操作、Flash內(nèi)部的存儲不會將編碼組分隔處理,降低數(shù)據(jù)處理過程中出現(xiàn)錯誤的可能性。
SDRAM初始化過程中,預(yù)充電 1次、自動刷新8次、設(shè)置模式寄存器的操作仿真如圖5所示。其中模式寄存器的設(shè)置字由地址線寫入。
圖5 SDRAM初始化仿真
一次SDRAM寫入過程中,連續(xù)32次8字突發(fā),寫入一個RS編碼組256字,仿真如圖6所示。讀操作基本相同。
圖6 SDRAM連續(xù)32次突發(fā)仿真
2)固態(tài)存儲器輸入數(shù)據(jù)流仿真
Flash在上電初始化后,將OBAT表寫入專門的控制信息緩存區(qū)中,供軟件讀取,軟件初始化結(jié)束后,進入存儲模式,信源串行輸入數(shù)據(jù)。SDRAM一次寫入256字,64次寫入后滿4簇數(shù)據(jù),向指定地址發(fā)起一次Flash四級流水寫入,由于SDRAM工作頻率與Flash不一致,所以數(shù)據(jù)從SDRAM讀出之后,跨時鐘域數(shù)據(jù)需要先進入fifo緩存,之后寫入Flash。流程仿真如圖7所示。為了直觀顯示過程,圖中極大程度減少了初始化遍歷空間數(shù)量,縮減Flash初始化時間、寫入MRAM的時間;減少了SDRAM寫入次數(shù),滿2簇即發(fā)起寫入。由于SDRAM讀寫速度快,且實際需求低于系統(tǒng)性能上限,所以I/O復用帶來的間隔較少不明顯。也證明了系統(tǒng)能夠較好的滿足航天任務(wù)需求。
圖7 數(shù)據(jù)輸入流程仿真
數(shù)傳系統(tǒng)一般由合路器、存儲器、復接器、發(fā)射機構(gòu)成。信源數(shù)據(jù)經(jīng)合路器送往存儲器存儲,過境時由復接器組幀送往發(fā)射機。典型的數(shù)傳系統(tǒng)數(shù)據(jù)處理會包括編解碼組合、打包、組幀、加擾等,實際地面使用的是包格式數(shù)據(jù)。具體不盡相同,文中以RS(256,252)編碼、存儲、RS解碼、LDPC(8160,7136)編碼[6]、組幀、加同步頭的典型操作為例,在前文所述四級流水、四倍并行擴展的設(shè)計架構(gòu)的基礎(chǔ)上,介紹由地面接收數(shù)據(jù)流逆推存儲地址的計算方法,大大簡化地面數(shù)據(jù)分析、特別是錯誤排除時的工作。
存儲器的控制軟件工作在VXworks系統(tǒng)[7]下,能夠進行在線測試。在地面檢測設(shè)備發(fā)現(xiàn)數(shù)據(jù)錯誤時、根據(jù)計算定位到Flash具體存儲地址后,通過訪問VXworks調(diào)用直接讀取Flash數(shù)據(jù)的指令,確認Flash內(nèi)部數(shù)據(jù)是否出錯。一般測試過程中,數(shù)據(jù)從第0塊開始回放,設(shè)地面接收到的數(shù)據(jù)第n字節(jié)出現(xiàn)錯誤,則錯誤出現(xiàn)的Flash具體地址計算過程如下。以下地址均從0計起,如流水級為0到3,簇地址為0到63。
第一步,去除幀同步頭所占字節(jié)a,同時去除 LDPC (8160,7136)增加的校驗字。根據(jù)LDPC編碼的規(guī)則,設(shè)在存儲器內(nèi)字節(jié)序號為m,則
第二步,計算錯誤所在的簇的總簇地址。每一簇主區(qū)存儲數(shù)據(jù)為4 k字,字位寬為32 bits,存儲的是原始數(shù)據(jù)的RS編碼。根據(jù)RS(252,256)的編碼規(guī)則,通過下取整函數(shù)得總簇地址ADDR(ClusterSum)為:
通過取余計算得到所在簇內(nèi)的字地址,綜合考慮每252字之后有4個RS校驗碼字的情況進行地址修正,可得ADDR(word)
簇的分布遵循四級流水的組織方式。則流水級ADDR (pipe)、流水級內(nèi)有效塊地址ADDR(block)、塊內(nèi)簇地址ADDR(cluster)為:
根據(jù)上述計算,得到流水級、流水級內(nèi)有效塊地址、塊內(nèi)簇地址、簇內(nèi)字地址的最終表達式為(地址均從0開始計起,a為幀同步頭長度):
需要注意的是,此處的流水級內(nèi)塊地址為有效塊地址,不包括被跳過的壞塊,所以最后需要對照壞塊表,增加已跳過的壞塊數(shù),得到最終的實際塊地址。通過在線調(diào)試調(diào)用CPU訪問Flash具體地址內(nèi)容,將數(shù)據(jù)讀取至內(nèi)存或者打印至屏幕,即可完成數(shù)據(jù)訪問。
為了高效直觀的進行數(shù)據(jù)對比,設(shè)計信源生成8 bits累加數(shù)生成器,4個8 bits數(shù)拼成一個字寫入Flash,如十六進制“03020100”、“1F1E1D1C”。讀出后使用專門編寫的比對程序進行比對,將比對情況輸出。發(fā)現(xiàn)錯誤時,直接調(diào)用逆推尋址,給出具體的錯誤數(shù)據(jù)地址,以便直接訪問Flash進行確認。在線打印如圖8所示。
圖8 在線調(diào)試截圖
星載固態(tài)存儲器發(fā)展的核心因素有兩點,一是半導體技術(shù),包括存儲介質(zhì)和邏輯控制芯片,二是存儲管理技術(shù)。目前針對SSR的研究主要在于跟隨半導體技術(shù)的不斷進步和航天任務(wù)發(fā)展需求,不斷提高數(shù)據(jù)管理水平。而星載固態(tài)存儲器的數(shù)據(jù)組織和管理的結(jié)構(gòu)是數(shù)據(jù)管理技術(shù)的基礎(chǔ)。本文從數(shù)據(jù)組織結(jié)構(gòu)、數(shù)據(jù)流通路的設(shè)計與實現(xiàn)、數(shù)據(jù)尋址分析3個角度入手,在較為成熟四級流水、總線擴展技術(shù)的基礎(chǔ)上,設(shè)計、分析了基于Flash的星載固態(tài)存儲器的數(shù)據(jù)組織結(jié)構(gòu),分析證明存儲器性能優(yōu)異,滿足航天任務(wù)需求。并根據(jù)典型數(shù)傳系統(tǒng),給出逆向?qū)ぶ返挠嬎惴椒?,大大降低了分析工作量,且具有一定的通用性?/p>
[1]Karl F Strauss.Memory technologies and data recorder design[C].IEEE Aerospace conference,2009:1-18.
[2]M Shimada.JAXA earth observation programs digest[J]. IEEE Geoscience and Remote Sensing Magazine,2014,2 (2):47-52.
[3]Fabiano M,F(xiàn)urano G.NAND flash storage technology for mission-critical space applications[J].Aerospace and Electronic Systems Magazine,2013,28(9):30-36.
[4]陸游游,舒繼武.閃存存儲系統(tǒng)綜述[J].計算機研究與發(fā)展,2013(1):49-59.
[5]韓睦華,支軍,劉雷波,等.新型智能存儲SoC中NAND Flash控制器的軟/硬件設(shè)計[J].微電子學,2009,39(2):185-189.
[6]CCSDS 131.1-O-2.Low density parity check codes for use in near-earth and deep space applications[D].Washington D. C.2007.
[7]王彥剛,呂遵明,萬留進.VxWorks系統(tǒng)的BSP設(shè)計與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用.2011,20(12):91-94.
Design of data management structure in space-borne solid state recorder
SONG Qi1,2,LI Shan1,2,ZHU Yan1
(1.Center for Space Science and Applied Research,Chinese Academy of Sciences,Beijing 100190,China;2.University of Chinese Academy of Sciences,Beijing 100019,China)
To improving data management level to deal with the complexity of Flash operations,the lack of high-level semiconductor logic devices,and the increase of performance and reliability demands,one multi-partition data management structure design for 4-pipe-line writing and fourfold bus expansion is proposed according to real space mission request.The feature of data flow is introduced by analysis and simulation.The throughput rate can reach almost 1Gbps.On the basis of design,a data reverse-addressing method is proposed to simplify the data analysis work in typical data transmission system.
solid state recorder;data management structure;data flow;data reverse-addressing
TN79
A
1674-6236(2016)06-0100-04
2015-05-05稿件編號:201505030
中國科學院戰(zhàn)略性先導專項資助(XDA04060300)
宋琪(1989—),男,山東菏澤人,博士研究生。研究方向:計算機應(yīng)用技術(shù),星載固態(tài)存儲器關(guān)鍵技術(shù)。