李 姍 , 宋 琪 , 朱 巖 , 周 莉 , 安軍社
(1.中國科學院 空間科學與應(yīng)用研究中心,北京 100190;2.中國科學院大學 北京 100049)
數(shù)據(jù)存儲設(shè)備是航天器的關(guān)鍵設(shè)備之一,為各種空間試驗或探測數(shù)據(jù)的采集、存儲以及在軌處理提供了重要的支撐平臺。隨著航天電子技術(shù)的發(fā)展,以FLASH(閃速存儲器)為基本存儲介質(zhì)的大容量固態(tài)存儲器已經(jīng)成為當前航天器數(shù)據(jù)存儲的主流方案之一。閃速存儲器(FLASH MEMORY)因其具有體積小、成本低、功耗小、壽命長、抗震動、和寬溫度適應(yīng)范圍等特點,逐漸成為星載大容量存儲系統(tǒng)的主流設(shè)計方案[1]。
目前主流的設(shè)計搭配有3種:CPU+FPGA+存儲單元;DSP+FPGA+存儲單元;FPGA+FPGA+存儲單元。其中第一種方案中CPU更適于實現(xiàn)多種控制算法;第二種方案中DSP對于系統(tǒng)的控制能力較弱,但是實現(xiàn)信號處理算法能力較強;第三種方案中FPGA的控制以及計算能力都較弱,但是可以實現(xiàn)更多的接口擴展。本文旨在基于國產(chǎn)元器件設(shè)計出一種架構(gòu)靈活,性能高,通用性強的大容量存儲平臺,所以使用CPU+FPGA+存儲陣列的搭配方式。
由于國外對中國的技術(shù)控制,現(xiàn)今大多存儲系統(tǒng)中CPU使用的都是國外的低端產(chǎn)品,其中常用的處理能力最高的是基于SPARCV8內(nèi)核的AT697,處理能力上限為86MPIS。本文選用具有潛在航天應(yīng)用的具有自主知識產(chǎn)權(quán)的、正向設(shè)計的抗輻射加固CPU——龍芯1E。龍芯1E芯片設(shè)計目標是以龍芯1號處理器為運算中心的高性能應(yīng)用處理器SOC,提供中斷控制器、定時器、RS232串口控制器、浮點處理器、PCI和存儲器接口(存儲器接口支持SDRAM和Flash ROM)。龍芯1E 外頻 50 MHz,內(nèi)頻 100 MHz;定點 300 MIPS,浮點 50 MIPS,抗輻照總劑量不低于100Krad,單粒子鎖定閾值不低于75 Mev.cm2/mg??煽啃栽O(shè)計以龍芯處理器、外圍IP為設(shè)計基礎(chǔ),同時對各子模塊進行結(jié)構(gòu)級可靠性加固[2]。
航天應(yīng)用中多使用反熔絲FPGA[3],以避免空間中的各種高強度輻射以及單粒子效應(yīng)帶來的影響。但是,反熔絲FPGA的價格都上萬元,并且不可反復(fù)燒寫,對調(diào)試工作帶來很大困難。有些任務(wù)中使用SRAM FPGA+PROM的形式,配置程序存放在PROM中每次上電重新加載,PROM內(nèi)的程序也可通過JTAG改寫。但是,這種工藝的FPGA為保證其穩(wěn)定性必須進行抗輻照加固處理,如數(shù)據(jù)的編碼處理,F(xiàn)PGA定時刷新等,都增加了控制的難度。本文選用ACTEL公司的A3PE3000L。它是一款FLASH FPGA,即可多次反復(fù)燒寫,又不會受到空間中各種高強度輻射及單粒子效應(yīng)的影響。大容量存儲系統(tǒng)中的存儲陣列現(xiàn)多使用NAND FLASH來搭建。本文使用具有抗輻射設(shè)計的珠海歐比特公司的VDNF64G08,該FLASH芯片一片包含8個基片,每個基片包含4096個塊,每塊又含有64頁,其中每頁包含4K+128Byte[4]。
大容量存儲系統(tǒng)包括存儲單元、計算機單元、數(shù)據(jù)接口單元以及緩存單元。存儲單元的FLASH存儲區(qū)采用并行擴展(32位)以及四級流水線操作,采用32 MHz工作主頻,吞吐率可達1 Gbps。計算機單元采用龍芯最小系統(tǒng)。數(shù)據(jù)接口單元分為高速與低速接口,其中高速接口為LVDS接口,而低速接口使用RS422。存儲單元直接受控于計算機單元,并且在一些場合中計算機單元需要對存儲單元中的數(shù)據(jù)進行編碼壓縮等處理??偠灾咧g的交互包含命令與數(shù)據(jù)??偩€的傳輸速率與使用緩存數(shù)量成反比,當傳輸速率一定時,緩存數(shù)量就成為傳輸速率的瓶頸。本系統(tǒng)加了一片64Mx46bit的SDRAM芯片作為緩存單元,緩存來自于數(shù)據(jù)接口的數(shù)據(jù)以及從存儲單元中讀取的待發(fā)數(shù)據(jù)。
為增強大容量存儲系統(tǒng)的靈活性與提高其處理能力,實現(xiàn)設(shè)備地檢一體化,本系統(tǒng)使用雙接口。HPI接口控制簡單便于實現(xiàn)但傳輸速率較低,傳輸控制命令。PCI接口便于擴展,傳輸速率快,局部總線間數(shù)據(jù)傳輸速率可達132 Mbps,傳輸存儲單元待存數(shù)據(jù),以及讀回存儲單元內(nèi)數(shù)據(jù)。圖1為原理框圖。
圖1 大容量存儲系統(tǒng)原理簡圖Fig.1 Organization structure of solid state recorder
基于系統(tǒng)國產(chǎn)化的需求,使用免費開放源代碼的VXWORKS操作系統(tǒng)便于實現(xiàn)國產(chǎn)化。龍芯在系統(tǒng)上電復(fù)位時,利用A18的值配置NOR FLASH的位寬,上拉表示16位,下拉表示8位。為了方便系統(tǒng)的嵌入、修改以及版本的保存,系統(tǒng)采用雙備份8位啟動模式。程序分別存放在EEPROM和NOR FLASH中。NOR FLASH使用PLCC封裝芯片,在電路板上放置一個芯片座,第一次啟動時程序離線燒入其中。調(diào)試時,將程序?qū)懭隕EPROM中,更改后的版本存放在EEPROM中,比較成熟的版本可以燒入NOR FLASH中留存,以備日后測試用。與程序存儲器公用地址總線的還有SDRAM。由于數(shù)據(jù)地址線上負載太多,在電路中加入16245以提高驅(qū)動力。并且在布線時,根據(jù)信號完成性中信號傳播的規(guī)律及各芯片的傳輸速率,將SDRAM放在信號線的遠端,程序存儲器(EEPROM和NOR FLASH)放在信號線的中間位置,將FPGA放置在信號線的近端。下表為RH2SOC芯片地址空間,各芯片根據(jù)下表使用地址線區(qū)分開。
表1 龍芯地址空間Tab.1 Longson address space table
圖2 系統(tǒng)框圖Fig.2 System chart
根據(jù)分析兩個程序存儲器需要劃分BOOT空間。用于EEPROM內(nèi)部尋址的有A0-A16;用于NOR FLASH內(nèi)部尋址的有A0-A18。除過地址信號外,EEPROM中還有八根片段信號,使用A17-A19通過3-8譯碼器實現(xiàn)八片尋址。最后,使用A20控制兩個芯片的片選。最初測試時,程序存儲在NOR FLASH中,所以默認應(yīng)該從這里啟動;調(diào)試過程中需要不斷更改并測試程序,需要從EEPROM啟動。所以,在兩個片選信號間加入跳線,根據(jù)需求調(diào)整啟動順序,具體實現(xiàn)如圖3。
圖3 雙啟動路徑電路圖Fig.3 Dual boot path schematic
為了節(jié)省引腳,RH2SOC芯片不再輸出SDRAM數(shù)據(jù)寬度屏蔽信號 DQM0,DQM1,DQM2,DQM3,而是在板上直接把SDRAM的相應(yīng)輸入腳接地。ECCSDRAM的數(shù)據(jù)寬度屏蔽信號ECC_DQM占用A24引腳,具體實現(xiàn)如圖。由于SDRAM工作速率很快,本系統(tǒng)中CPU沒有倍頻的操作,它與CPU工作在同一個時鐘下。在PCB設(shè)計時這里采用數(shù)據(jù),地址,時鐘,控制組內(nèi)與組間均等長的設(shè)計。系統(tǒng)時鐘分別連接了CPU與SDRAM,時鐘是同步驅(qū)動兩個器件工作的,采用雙匹配電阻的設(shè)計,同時減少來自兩個方向的信號反射,具體實現(xiàn)如圖4。
圖4 CPU時鐘路線設(shè)計Fig.4 CPU clock route design
龍芯小系統(tǒng)的復(fù)位需要同時受控于軟件與硬件,所以在硬件上使用具有看門狗功能的復(fù)位芯片。將看門狗輸出與正常復(fù)位輸出相連,以保證軟件可以直接控制復(fù)位輸出。在按鍵與手動復(fù)位輸入管腳MR之間加入跳線,調(diào)試初期可以使用手動復(fù)位來輔助調(diào)試,后期當程序成熟后可以斷開手動復(fù)位輸入以保證程序穩(wěn)定性,具體實現(xiàn)如圖5。
圖5 雙模式復(fù)位設(shè)計Fig.5 Dual mode reset design
龍芯支持8位與16位的HPI接口,具體模式由EMI_A17管腳設(shè)置,上拉表示HPI位寬為16bits,下拉表示HPI位寬為8bits。HPI接口信號包括:數(shù)據(jù),地址線,控制信號:HPI_RDY,HPI_CS#,HPI_RST#,NR_CS#。為了保持本系統(tǒng)的靈活性,EMI_17這里使用同時有上下拉電阻的設(shè)計方式,使用時可以根據(jù)具體需要方便更改啟動方式。PCI總線不僅傳輸速率高,還具有擴展方便,支持熱插拔等特點,為了日后擴展方便,本系統(tǒng)還加入了一個PCI104標準的擴展接口。龍芯與FPGA的PCI連接方式使用32位總線寬度,33 MHz總線頻率。本系統(tǒng)中將龍芯的PCI接口直接與FPGA相連,使用PCI IP核實現(xiàn)具體協(xié)議,最大程度保證了系統(tǒng)的可配置性。本系統(tǒng)使用了兩個中斷,可方便的通過FPGA靈活選擇。
龍芯與FPGA的連接使用HPI和PCI雙接口連接。HPI接口用于傳輸命令等控制信號,PCI5接口除了可以進行控制信號的傳輸,還可以進行數(shù)據(jù)的傳輸。當系統(tǒng)工作速率較低,存儲單元容量小于256G時,可以使用HPI傳輸控制命令。當系統(tǒng)工作速率提高,存儲單元容量擴大,數(shù)據(jù)分區(qū)增多,單一操作需要發(fā)出的地址數(shù)量增多,HPI接口傳輸速率跟不上FLASH操作速率,使用PCI接口作為控制信號傳輸接口。當讀寫操作頻率不高,而數(shù)據(jù)量很大時,可以讓兩套總線還可同時工作,HPI接口傳輸控制命令,PCI接口傳輸數(shù)據(jù)。
本系統(tǒng)中數(shù)據(jù)接口單元的收發(fā)數(shù)量都是相同的,相同的兩套系統(tǒng)是可以直接相連的,并且龍芯與FPGA相連的PCI總線同時引出到PCI1046連接器上,便于擴展以及連接嵌入式計算機,從而實現(xiàn)了設(shè)備與地檢的一體化。當作為設(shè)備使用時,存儲單元的數(shù)據(jù)大多直接從數(shù)據(jù)接口通過,CPU不直接傳輸數(shù)據(jù)。作為地面檢測設(shè)備使用時,測試數(shù)據(jù)可以直接通過PCI總線上由PCI104連接器連接的嵌入式計算機傳輸?shù)酱鎯卧?;存儲單元讀出的數(shù)據(jù)直接通過PCI總線傳輸至計算機由軟件進行比對。
大容量存儲單元在航天探測過程中扮演著不可或缺的角色,但是現(xiàn)在很多芯片的核心技術(shù)都被外國所壟斷,強烈地制約著我國航天事業(yè)的發(fā)展。本系統(tǒng)中核心元器件均為國產(chǎn)器件,在現(xiàn)在國產(chǎn)器件剛剛起步的初期,還未見有應(yīng)用于大容量存儲單元中。希望本文所介紹的基于抗輻射龍芯的雙接口系統(tǒng)可以對廣大設(shè)計人員有一定的啟發(fā)作用,讓國產(chǎn)芯片開發(fā)產(chǎn)品可以在航天,國防,軍事等安全性較高的領(lǐng)域有更廣闊的應(yīng)用。
[1]朱巖.基于閃存的星載高速大容量存儲技術(shù)的研究[D].北京:空間科學與應(yīng)用研究中心,2006.
[2]龍芯1E處理器用戶手冊.龍芯中科技術(shù)有限公司[S].2011.
[3]WANG J,Katz R,Kleyner,et al.Total dose and RT annealing effects on startup current transientin antifuse FPGA[C]//Fontevraud:Radiation and Its Effects on Components and Systems,1999.
[4]VDNF64G08-F 64G bit*8 bit NAND Flash memory.Orbit Electronics[S].2013.
[5]PCI Local Bus Specification Revision 3.0.PCI Special Interest Group[S].2002.
[6]PC104-Plus Specification v2.2,PC/104 Embedded Consortium[S].2007.