高 驥 高蘭志 崔艷鵬 白 潔
(1.北京宇航系統工程研究所 北京 100076;2.山東航天電子技術研究所 山東煙臺 264003 3.西安電子科技大學 西安 710071;4.中國運載火箭技術研究院 北京 100076)
星載計算機作為衛星、飛船等航天器的核心系統之一,航天任務對星載計算機的性能和功能要求已愈來愈高,而且隨著航天任務的日趨繁多,星載計算機的功能日益復雜,性能要求越來越高、體積越來越小。采用傳統的設計方法已無法滿足星載計算機的高性能、小型化和功能的高度集成化,亟需采用新的系統設計方法滿足星載計算機研制需求。近年來,在密集型計算領域興起的片上多核系統MPSOC(Multi-Processor System On Chip)為小型化、高性能星載計算機的設計提供有效的解決方案,基于可編程邏輯器件FPGA 的可重構資源,將異構多應用微處理器(Application Processor,AP)、可重構模塊(Reconfigurable Module,RM)、專用ASIC 部件、I/O接口等資源構成異構并行的處理系統,使系統能夠靈活地融合多種不同的計算資源,計算機系統中的某種(或某些)資源能夠很大限度地滿足星載計算機的不同應用模式和在軌數據處理的要求,達到較高的性能。系統中集成的一個或多個RM 能實現硬件的功能改變,各模塊之間的互連關系可以通過配置和動態調節。這種可變性能使系統適應更大范圍的應用需求,向一體化、小型化、可搬移、高性能的方向發展。
本文針對未來航天任務對星載計算機的功能復雜化、體積小型化的要求,對基于MPSOC 的可重構星載計算機進行設計,給出具體的體系結構與功能實現方式,并根據星載計算機的新型體系結構給出了基于軟硬件協同的星載計算機設計方法。
國外基于MPSOC 的可重構星載計算機起步較早,美國國家航空宇航局NASA 將可重構計算技術的航天應用列入新的評估項目,相關評估的結果表明:基于FPGA 的可重構處理系統應用航天具有比傳統低性能的微處理器,甚至比抗輻射加固的商業化微處理器更高的性能,可以通過重構實現靈活的系統功能以及通信協議等特殊功能。目前,國外已有將可重構計算機應用于航天器電子系統設計的成功實例,例如澳大利亞CRCSS 的FedSat[1]以及NASA 的可重構星載電子平臺SRC-6E[2];德國斯圖加特大學小衛星計劃的第一顆微小衛星——Flying Laptop 也采用了基于FPGA 的可重構計算技術設計星載計算機[3]。我國目前尚沒有將可重構計算技術應用于航天領域的實例。
可重構計算機領域的另一項核心技術是可進化系統技術(EHW)。EHW 可簡單定義為:借助軟硬件技術將智能算法應用于可編程器件構建智能系統的一種設計技術。可重構星載計算機的特點在于利用“自適應”的思想,使星載計算機軟硬件具備分析、判斷故障能力,實現自我診斷,并通過動態、自主重構,在故障條件下繼續正常工作,保障在軌計算機自動完成預定任務。
美國噴氣推進實驗室JPL 依據EHW 技術已開發出幾種驗證平臺(包括控制器以及其他部件)。高速、大容量可編程器件成為可重構計算機首選的硬件平臺。國外目前采用的可編程器件有FPGA、FPAA(Field Programmable Analog Arrays 現場可編程模擬陣列)、FPTA(Field Programmable Transistor Arrays 現場可編程晶體管陣列)以及可編程混合信號陣列,其中又以FPGA 應用最為廣泛。星載計算機容錯體系結構與系統重構技術的研究,使星載計算機能夠滿足深空探測、空間機器人、空間攻防技術發展需要,確保星載計算機能夠盡量少地依靠地面指揮系統,實現自主故障診斷、故障隔離和系統重構。英國Luton 大學為馬特拉·馬科尼公司研制的一個試驗性的地球敏感器項目就采用了SoC 技術和系統重構技術[4]。
多處理器片上系統(MPSOC)一般由多個處理器單元、專用功能模塊甚至混和信號電路組成,構建一個復雜的集成計算機系統,從而滿足計算機系統在計算性能、功耗、實時性以及成本等方面的需求。MPSOC 計算機系統通過定制體系結構來滿足不同應用在成本和功耗等方面的需求,已廣泛地用于通信、消費類電子產品和網絡多媒體等諸多領域。
MPSOC 多處理器片上系統一般由一個標準處理器主核和多個專用處理芯片(如DSP 和其他支持專用運算的處理器核組成),多核之間通過高速總線互聯,每個核都有對應的一塊共享內存,通過片上網絡構成一個整體,和外部的內存進行數據交換[5]。如圖1所示。典型的MPSOC 由三類組件組成:處理器單元,包括處理器、DSP 或ASIC 用于執行計算任務;存儲模塊用于保存數據;互連網絡用于組件間通信。系統中可以有不同類型的可編程處理器(如CPU 和DSP),也可以有專用處理器單元(如ASIC)來完成單個功能。片上存儲結構和通信互連結構也是異構和定制的,從而滿足嵌入式應用在性能和實時性上的需求。

圖1 基于MPSOC 的計算機體系結構
可重構計算機(RCS,Reconfigurable Computing System)是指基于可編程器件實現片上系統或者某種應用的算法加速。由于可編程器件具備電路重構的特征,從而引起片上系統的系統結構的重構改變或者應用算法的改變,它的出現較好的解決了算法運行在通用計算平臺上的性能問題和算法固化在ASIC 上的不能修改的問題[7]。可重構計算機系統通常基于通用處理器架構的主處理器和基于可重構電路技術的可重構硬件組成,可重構計算機一般采用可編程器件作為可重構硬件重構和實現的基礎,目前主要是采用FPGA,隨著FPGA 的容積和性能的發展,可重構計算機的功能和性能也越來越強。典型的可重構計算機結構模型如圖2所示,由通用處理器、微處理器MPU、專用ASIC、數字信號處理器DSP、存儲器MEM 和I/O 組成,通過可重構片上互聯網絡NoC(Network on Chip)實現不同資源之間的互聯。
根據星載計算機的需求,基于可編程邏輯器件和標準處理器(核)設計如圖3所示的多處理器片上計算機系統,該計算機系統由標準的處理器CPU0、CPU1 和多個專用的應用處理器系統組成,同時在系統還配置重構管理模塊和可重構橋接I/O 接口,可重構管理模塊完成計算機的功能重構管理功能,通過配置片上網絡NoC 的互聯結構和應用處理器功能模塊,實現星載計算機功能重新配置,可重構橋接I/O 實現了標準處理器、片上應用處理器與外部特定I/O 接口(如片上PCI總線到外部接口的轉換)的轉接,同時實現多個處理器共享同一外部I/O接口的功能。

圖2 可重構計算機體系系統RCS 的結構模型

圖3 基于MPSOC 的可重構星載計算機體系結構
該計算機系統是由多個標準處理器模塊(CPU0、CPUl)、全局存儲器模塊,片上網絡NoC 和多個專用應用處理器構成的并行計算系統。標準處理器模塊負責計算機系統的運行計算和管理任務,在計算機系統充當系統管理的角色;通過FPGA 實現片上應用處理器(Application Processor,AP),每個AP 完成特定的應用功能,完成星載計算機的專用功能,其功能類似計算機外圍設備中ASIC 完成的功能,如高級傳感器預處理器AP 完成傳感器數據的采集和預處理功能,健康監控和預測管理功能處理器AP 根據其他處理器提供的數據對計算機的健康狀況進行監控,并由基于模型的控制處理器AP 根據這些數據對計算機的狀態進行預測和管理。根據星載計算機的應用場合,片上應用處理器AP 可以專用于加速具有規則計算模式的特定應用算法(如乘累加算法、對稱密碼算法等),或者實現數字信號處理算法核(DSP)、序列密碼算法及其它隨機邏輯電路。
AP 的配置過程由標準處理器發起,配置數據可存于全局存儲器、處理器的局部存儲系統.或AP 的局部存儲器中;標準處理器通過配置指定AP 功能后,可以通過片上總線NoC 向其傳送命令,啟動并完成一定數據集在標準上的快速處理,源數據和計算結果可傳遞于全局/處理器局部存儲器與AP 局部存儲器之間。全局存儲模塊提供全局可見的存儲空間,在硬件上,所有的標準處理器節點和AP 均可訪問全部存儲區域,而在軟件上,所有處理器都把此存儲區域映射為各自I/O 空間的一部分,某個標準處理器作為“主處理器”負責全局存儲區域的劃分和管理,解決數據沖突,并配合片上網絡中的硬件邏輯來完成存儲區保護。
計算機系統對外提供統一的I/O 接口,主處理器和AP 均通過可重構橋接I/O 模塊與外界進行接口。橋接模塊實現了片上網絡NoC 或標準處理器總線(如PCI總線)到特定I/O 接口的轉接,因此該模塊由進行總線協議轉換的橋接部件及特定I/O 接口控制器兩部分組成。這使得標準處理器和AP 均能通過轉接共享的訪問不同I/O 接口,提高了對外連接的適應性。
重構管理模塊RC 是基于MPSOC 的可重構計算機系統重構功能的核心。因為計算機通過片上網絡NoC 將異構的處理器、AP 等計算機節點、全局存儲模塊等進行的內部互連,以提供模塊間高速的數據傳輸通道。可重構計算機功能的轉換也通過配置片上網絡NoC 的互聯關系、AP 的功能配置實現計算機系統功能的轉換。重構管理模塊RC 負責計算機系統中所有AP 配置數據的傳輸和具體MPSOC的配置過程;它負責解析系統定義的各種配置命令和處理命令,進行沖突仲裁、資源分配和保護,并記錄傳輸狀態。
基于MPSOC 的可重構星載計算機可以在不同的級別上實現重構:在體系結構級,通過調整各個芯片之間的互連關系,可以針對特定應用要求更合理地分配資源,實現靈活的軟硬件劃分,形成可重構并行處理系統;在部件級,專用AP 內部可以實現功能單元問靜態或動態的可重構通路,以及單元內部的功能重構,形成粗粒度的可重構計算結構,可有效加速特定算法的執行;在邏輯級,細粒度重構方式實現對AP 進行靜態或動態配置,定制程序需要的特定功能,實現高度并行的功能單元,可靈活提高星載計算機的并行執行速度。
使用多處理器技術設計星載計算機,具備很多優勢,首先,加速系統的多任務計算能力,因為在計算機中每個應用處理器AP 都有獨立的cache、與系統總線獨立的接口,并且操作系統OS 擁有足夠的資源用進行密集的并行任務處理,從而實現了處理性能的顯著提高。
多處理器系統的最優化需要運行在該系統中的所有操作系統OS 和應用程序支持稱之為線程級并行(Thread-Level Parallelism,TLP)的技術。線程級同步是操作系統和應用程序支持多線程的運行,線程作為一段程序可以獨立于其他軟件模塊而獨立運行,從而提高基于MPSOC 的計算機系統的運行效率。
另一方面,考慮到MPSOC 將不同的處理事務集成到多個應用處理器中,其結果是使用更少的處理器和更小的印制板面積。在系統設計實現時可以最小化臺面面積,從而減小計算機重量、印制板大小,從而可以滿足航天器小型化、輕型化的要求。
其次,使用MPSOC 及時可以簡化在現用硬件上添加新的功能,在系統中預留了空閑的資源用于未來的系統的擴展和升級。當系統中應用處理器AP、標準處理器和其他分布式處理單元之間的關鍵系統接口確定以后,在確定的實時環境下的系統設計可以采用即插即用方法進行系統設計。
傳統的星載計算機設計流程如圖4所示,在傳統的計算機設計方法中,軟硬件聯合設計方法很少使用,系統軟硬件的劃分主要依賴于開發人員的工程經驗,考慮因素也主要是已有的軟件或硬件,另因缺乏對劃分結果的仿真分析,因而做到軟硬件劃分最優比較困難。在星載計算機系統要求多功能、低成本、小型化的發展趨勢下,傳統設計方法不僅降低了設計效率,而且計算機的性能提升也出現了瓶頸。為提高星載機設計設計效率和任務執行并行度,在基于MPSOC 的星載計算機系統設計時,采用了軟硬件協同設計的設計方法,充分分析系統功能需求,在功能滿足需求、成本最小化的基本原則下對計算機系統進行軟硬件分割。
基于MPSOC 的星載計算機軟硬件協同設計方法的流程如圖5所示,星載計算機軟硬件協同設計方法采用體系結構描述語言ADL(Architecture Description Language)描述系統行為[8],并在此基礎上自動劃分軟硬件,硬件劃分中在劃分為多種應用處理器,然后分別用語言設計軟硬件,并將其綜合后進行功能驗證和性能預測等仿真結果進行確認,若無問題則詳細設計軟硬件。

圖4 傳統的星載計算機軟硬件設計方法
在系統行為描述階段,系統將以最直接的方式描述。此時,不涉及系統的實現。在此階段,需對整個系統行為進行分析驗證,以期在設計的開始階段就能發現系統行為要求中的錯誤。之后,對系統行為描述進行軟硬件的功能劃分。根據系統的功能,將系統分為互連的多個應用處理器AP,每個應用處理器作為獨立的處理器系統用于執行功能相對獨立的特定行為。同時需要確定應用處理器、標準處理器之間的互連關系和接口標準,完成計算機系統的結構模型描述。在完成系統的結構描述后,同樣需要進行驗證,以確認結構描述與行為描述的一致。軟硬件劃分在結構描述完成后進行,以確定各部分功能是由單獨的應用處理器來完成,還是由計算機系統的標準處理器來完成。更重要的是,軟硬件劃分后,需預測系統的性能和靈活性等參數,以評估軟硬件劃分,甚至應用功能劃分的合理性。若劃分不合理,則需重新進行軟硬件劃分或功能劃分,并重新做評估。如此循環直至獲得最優軟硬件劃分方案。完成軟硬件劃分后,就可細化各模塊(包括應用處理器AP、標準處理器軟件功能)、綜合直至虛擬器件原型(包括軟件)。整個細化過程中,經過多次進行軟硬件的協同驗證,以及時發現細化中的錯誤。在到達器件原型級后,需對各硬件原型進行設計并是以MPSOC 的方式實現,最后通過軟硬件協同設計完成最終的實現。在應用處理器的設計上,某些有廠商提供的內核如DSP、MCU 等,可直接進行例化;對自主設計的專用應用處理器系統,還需作進一步綜合和布圖等。整個設計結束前,還應對設計進行底層的軟硬件協同驗證和仿真,最終確認設計是否滿足功能要求和條件約束。在系統設計過程中對計算機擴展功能的分析和綜合,設計MPSOC 可重構管理模塊,建立不同工作模式下的重構配置策略,在計算機系統功能需要改變時通過重構管理模塊實現計算機的重新配置。
采用基于軟硬件協同設計的星載計算機設計方法,能夠在計算機設計早期就能實現軟硬件的交互,最大限度地挖掘計算機系統軟硬功能之間的并發性,優化了計算機軟硬件的協同和分工,避免因獨立設計軟硬件體系結構導致的性能無法提高、體積無法減小等弊端。
基于MPSOC 的可重構星載計算機設計通過融合多種不同的計算資源,能夠使星載計算機根據其特定的應用功能分配計算機資源,滿足復雜的應用模式和處理要求,同時提高了星載計算機任務處理的并行性、提高運行效率。通過定義硬件功能的在線重構策略,能實現硬件的功能在軌動態重構,通過標準處理器和重配置管理模塊,能有效支持計算機內部多個應用處理器和片上通信網絡的配置及重構控制,這種可重構特性使系統能適應星載計算機在不同運行模式和應用場合下的應用需求,使計算機向小型化、高性能、智能化的方向發展。通過基于軟硬件協同設計方法對星載計算機應用功能進行劃分,優化了計算機軟硬件的協同和分工,提高了星載計算機的設計效率和計算性能。基于MPSOC 的可重構星載計算機設計,為未來航天用計算機的系統設計提供高效而快捷的技術途徑。
[1]GRAHAMC,PETKOVIKM,RUSSELLS,eta1.The Fed Sat Microsatellite [EB/OL].[2008-01-15].http://www.itr.unisa.edu.au/research/crcss/fedsat_microsatellite.pdf.
[2]EASMEA,MOHAMEDT,TAREKEG,et al.Aneffieient implementation of automatic cloud cover assessment(ACCA)on a reconfigurable computer[EB/OL].[2008-03-05].http://www.esto.nasa.gov/eonferences/estc2005/papers/a9p1.pdf.
[3]MONTENEQROS,ROSER H P,HUBER F.BOSS:Software and FPGA Middleware for the"flying laptop" Microsatellite[C]//European Space Agency,Proceedings of DA-SIA.[s.1.].2005.
[4]李仁發,劉彥,徐成.多處理器片上系統任務調度研究進展評述[J].計算機研究與發展,2008,45(9):1620-1629.
[5]楊孟飛,華更新.空間計算機技術的現狀和未來發展趨勢[C].中國宇航學會首屆學術年會,2005,423-429.
[6]郝沁汾,尚利民,祝明發.可重構計算機的發展探討[C].2007年全國高性能計算學術年會論文集,2007,111-117.
[7]武文權.可重構并行小衛星星載計算機體系結構設計[D](博士).上海:中國科學院上海微系統與信息技術研究所,2004.
[8]高曉清.基于ADL 的抽象級嵌入式系統設計方法研究[J].計算機工程與設計,2010,31(4):3229-3232.