施 蕾,劉 波,周 凱
(1.北京控制工程研究所,北京 100190;2.國防科技大學,長沙 410073;3.中國空間技術研究院總體部,北京100094)
基于SPARC V8結構處理器的計算機系統(tǒng)設計
施 蕾1,劉 波1,周 凱2,3
(1.北京控制工程研究所,北京 100190;2.國防科技大學,長沙 410073;3.中國空間技術研究院總體部,北京100094)
首先介紹了國內外計算機SPARC體系結構的研究現(xiàn)狀,指出SPARC體系結構已成為國際上流行的處理器結構之一,而且眾多航天機構也采用了SPARC結構的處理器設計其航天器的計算機系統(tǒng)。隨后,著重說明了SPARC V8的組成結構以及國內外基于SPARC V8結構設計實現(xiàn)的處理器。最后給出了基于國產SPARC V8結構處理器BM3802設計實現(xiàn)的最小系統(tǒng)組成結構。
SPARC結構;SPARC V8處理器;體系結構;最小系統(tǒng)
半導體工藝的飛速發(fā)展,以及深亞微米工藝加工技術的不斷提高,使整個系統(tǒng)設計集成到單一芯片上的實現(xiàn)成為可能,這種系統(tǒng)集成技術統(tǒng)稱為系統(tǒng)芯片(SOC,system on chip)技術。針對衛(wèi)星設計來說,SOC技術是一種高度集成化的系統(tǒng)集成技術。利用系統(tǒng)集成技術可以將衛(wèi)星的傳感器信號處理、數(shù)據(jù)采樣和處理、姿控、上下行通信、有效載荷數(shù)據(jù)處理和控制、故障檢測和容錯管理等功能進行合理劃分,把系統(tǒng)集成為幾個標準化的功能模塊,并且通過自頂向下的電子設計自動化技術(EDA,electronic design automation),把功能模塊盡可能的集成在一塊芯片上。采用SOC技術后,不僅可以滿足衛(wèi)星的小型化需求,而且還能同時提高系統(tǒng)的性能和可靠性,適應設計復雜、要求嚴格的航天控制系統(tǒng)。
SOC技術為工程師們提供了一個快捷、經濟的系統(tǒng)設計方法,使嵌入式結構擺脫了以往系統(tǒng)設計時高性能與高成本并存等缺點的束縛。達到了工程師通過低成本單片芯片,實現(xiàn)高性能系統(tǒng)的目的。目前,通過SOC技術實現(xiàn)系統(tǒng)設計已成為集成電路(IC)設計及嵌入式系統(tǒng)發(fā)展的趨勢和主流。
基于 SPARC(scalable processor architecture)V8結構的高性能32位處理器,已在SOC設計領域中得到廣泛地應用。本文介紹了采用基于SPARC V8結構的國產處理器BM3802設計所實現(xiàn)的最小系統(tǒng)。
1985年Sun系統(tǒng)公司為了獲得更高的執(zhí)行效率和更優(yōu)化的編譯器,并滿足縮短開發(fā)周期,迅速投放市場的要求,提出了SPARC體系結構。SPARC體系結構是一種精簡指令集計算機(RISC,reduced instruction set computers)類型的中央處理器(CPU,central processor unit)指令集體系結構[1]。
1987年SUN和TI公司合作開發(fā)了基于SPARC結構的微處理器。于1989年成立專門負責SPARC體系開發(fā)認證的國際組織。SPARC體系結構是一種可以隨著工藝技術的改進,來成比例提高自身性能的處理器結構。而且SPARC體系結構采用了一種開放式的體系結構標準,任何企業(yè)或個人都可以根據(jù)這個標準來設計和開發(fā)微處理器和半導體器件。
上個世紀末,歐空局為了擺脫對美國高性能、高可靠性處理器的依賴,利用SPARC V7結構,加入了抗幅加固工藝的處理,開發(fā)出了面向空間應用的TSC695F處理器。目前,SPARC結構已經從最早的32位SPARC V7結構,經過32位SPARC V8哈佛結構,發(fā)展到了目前的64位 SPARC V9超標量結構,使SPARC體系結構的微處理器得到了更為廣泛的發(fā)展。
目前,中國航天領域的計算機系統(tǒng),廣泛采用了基于SPARC V7結構實現(xiàn)的TSC695F處理器。關注SPARC體系結構的發(fā)展,有利于中國航天領域系統(tǒng)設計的技術更新。
SPARC體系結構是一種CPU的指令集結構,它是微處理器精簡指令集結構的一個分支。其設計的指令集能提高執(zhí)行的效率以及優(yōu)化編譯器生成的代碼,從而使代碼執(zhí)行起來更為高效、快速。
SPARC體系結構采用了一種基于“寄存器窗口”的系統(tǒng)結構,這種系統(tǒng)結構對于用戶程序、特別是很大的應用程序,能夠使編譯器生成更直接、更高效地優(yōu)化代碼。相對于其他 RISC結構來說,這種窗口結構盡量減少了存儲器裝載/存儲指令,加快了代碼執(zhí)行的速度。對于像C++這種以面向對象為主的編程語言來說,“寄存器窗口”這種結構能更好地優(yōu)化可執(zhí)行代碼。當在操作系統(tǒng)下運行時,各進程之間在這種結構下能更快地進行上下文切換[2]。
SPARC體系結構具有如下特點:
1)統(tǒng)一格式的指令譯碼;
2)指令規(guī)整、對稱、簡單;基本尋址方式有2~3種;3)大部分指令都是單周期指令五級流水線;4)使用海量寄存器(“寄存器窗口”的系統(tǒng)結構);
5)只有LOAD/STORE指令能夠訪問存儲器。
SPARC V8支持10種數(shù)據(jù)類型。整數(shù)類型包括有符號整型字節(jié)、有符號整型半字、有符號整型字、無符號整型字節(jié)、無符號整型半字、無符號整型字、雙字和帶標志字。浮點類型包括單精度浮點數(shù)和雙精度浮點數(shù)。
SPARC是一個大端模式體系,一個雙字,單字或者半字的地址是它最高字節(jié)的地址。最高位的字節(jié)通常存儲在最低的地址位上。
處理器通過從存儲器上讀取指令來執(zhí)行操作、取消操作或者執(zhí)行中斷。這些指令總共可以分成6類:LOAD/STORE、算術/邏輯/移位、控制轉移指令、讀寫狀態(tài)寄存器指令、浮點運算指令和協(xié)處理器運算指令。一共有72個基本的指令操作碼。
SPARC V8目標碼和V7目標碼唯一的區(qū)別是:編譯器生成整數(shù)乘法和整數(shù)除法指令,SPARC V8支持該指令,而 V7體系不支持。DIV除法指令、MUL指令乘法指令、MAC指令乘法和累加指令是SPARC V8特有指令。
SPARC V8寄存器包括兩種類型的內部寄存器:控制/狀態(tài)寄存器和通用寄存器。
3.2.1 控制/狀態(tài)寄存器
32位的整數(shù)運算單元(IU)控制/狀態(tài)寄存器包括:程序計數(shù)器(PC,nPC)、處理器狀態(tài)寄存器(PSR)、窗口無效標志寄存器(WIM)、異常基址標志寄存器(TBR)和乘法/除法標志寄存器(Y),用戶可以通過這些硬件寄存器了解處理器的工作狀態(tài)。
1)程序計數(shù)器
32位的PC包含IU當前執(zhí)行的指令地址。nPC包含下一條指令的地址(假設異常沒有發(fā)生)。PC由CALL或者JMPL指令讀出,當一個陷阱產生時,PC和nPC的值就會被寫入兩個局部寄存器內。
2)處理器狀態(tài)寄存器(PSR)
處理器狀態(tài)寄存器PSR除了包括反饋處理器操作狀態(tài)的信息外,也包括了控制處理器操作的各項信息。它可被SAVE、RESTORE、TICC和RETT指令修改,同樣可以被其他可修改PSR狀態(tài)位的指令修改。例如特殊的RDPSR和WRPSR指令等。
3)窗口無效標志寄存器(W IM)
窗口屏蔽寄存器用來指定當CWP(當前窗口指針)指向哪個窗口時,會引起上溢或下溢陷阱產生。即每一個寄存器集或者一個寄存器窗口在W IM中都有一個相應的狀態(tài)位。
4)異?;窐酥炯拇嫫鳎═BR)
異?;芳拇嫫鱐BR包含三個字段。當異常產生時,將異?;芳拇嫫鱐BR的內容送入程序計數(shù)器PC中,以實現(xiàn)向陷阱處理程序的傳輸控制。
5)乘法/除法標志寄存器(Y)
乘法/除法標志寄存器(Y)用來保存整型乘法指令(如 SMUL、SMULCC、UMUL、UMULCC)和 整型乘法指令(MULSCC)雙精度結果中的高32位,同時還將保存整型除法指令(SDIV、SDIVCC、UDIV、UDIVCC)雙精度被除數(shù)的最高字。
3.2.2 通用寄存器
SPARC V8含有32個32位的通用存儲器。
3.3.1 BM3802 32位空間嵌入式處理器
BM3802是由航天某研究所自主研制的一款基于SPARC V8結構的AMBA總線的高性能32位RISC嵌入式處理器[3]。
BM3802是采用以 32位整數(shù)和 32位、64位IEEE-754標準浮點數(shù)為基本數(shù)據(jù)類型的指令集結構。它定義了通用整數(shù)、浮點數(shù)、特殊狀態(tài)寄存器和72個基本指令操作,譯碼都是32位寬的指令格式。處理器包括整數(shù)單元、浮點處理單元、AMBA總線、獨立的指令Cache和數(shù)據(jù) Cache、硬件乘法器和除法器、存儲器控制器。為了實時應用,處理器提供了一個看門狗、兩個定時器、一個中斷控制器和兩個串口通信控制器。另外,處理器具有檢錯和糾錯功能,適合惡劣環(huán)境應用,具有低電路復雜度和低功耗的特點。處理器支持嵌入式操作系統(tǒng),包括uclinux和 RTEMS。
BM3802提供了大量系統(tǒng)支持功能的嵌入式處理器,只要加上存儲器和與應用相關的專用外圍電路,就可以構成完整的板上計算機。
3.3.2 SAILING S698處理器
SAILING S698處理器(以下簡稱S698處理器)是國內針對嵌入式實時控制及信息處理應用而研制的32位RISC嵌入式處理器,其設計遵循SPARC V8標準[4]。
S698處理器內嵌符合 IEEE-754標準的64位浮點運算器(FPU),采用AMBA總線作為片內系統(tǒng)架構總線,片上各模塊通過AMBA總線進行數(shù)據(jù)交換和通訊。AMBA總線配置了PCI總線接口、存儲器總線接口、UART、定時器、中斷管理器、I/O、看門狗、配置寄存器等,使得S698芯片的集成度和功能得到了大幅度的提高。S698處理器內部結構框圖[4]如圖 1所示。
圖1 S698結構圖
S698處理器具備硬實時處理能力,完全支持ORBITA實時嵌入式操作系統(tǒng)ORBITA EOS、實時嵌入式操作系統(tǒng)RTEMS以及嵌入式操作系統(tǒng)uclinux?;赟698處理器芯片,利用其完整的軟硬件開發(fā)系統(tǒng),用戶可以輕便地設計各種各樣的嵌入式應用系統(tǒng),包括 PC/104主機板、VME主機板、CPCI主機板等。S698還可以應用于高端工業(yè)控制、消費電子、航天計算機等領域。
3.3.3 具有抗輻射能力的32位SPARC處理器AT697
2005年,Atmel公司推出了具有加固能力,適用于空間領域應用的32位SPARC V8處理器AT697。與前代SPARC處理器相比,AT697在封裝尺寸減小3倍的同時,還將速度與功耗比提高了8倍,有效地提升了計算能力。
AT697軟件與 SPARC V7 TSC695F等前代SPARC處理器兼容。這樣工程師可以重新使用前代SPARC處理器開發(fā)的任何軟件來發(fā)揮AT697的高性能。AT697處理器采用歐空局(ESA)的LEON2 FT(容錯)VHDL模型,采用 Atmel的0.18μm CMOS工藝制造。它包括一個 SPARC V8整數(shù)單元、浮點單元、分離指令和數(shù)據(jù)緩存、PCI接口及靈活的存儲器控制器與 SRAM、PROM和SDRAM連接。
AT697的內核及I/O緩存分別采用1.8V和3.3V電源,100MHz時速度達86MIPs和23MFlops。性能與能耗比為150MIPs/W,功耗為7mW/MHz。
AT697處理器采用陶瓷密封MCGA 349引腳封裝,可獨立使用,該封裝適合太空產品使用,無論是大小、重量還是熱敏感度均優(yōu)于扁平四方封裝。
AT697處理器不僅具有高可靠、高性能和低功耗等優(yōu)勢,而且可以兼容基于TSC695F處理器開發(fā)的所有軟件,但由于受供貨渠道的限制,目前僅能拿到 AT697的樣片[5]。
3.3.4 處理器性能特點比較
前3節(jié)分別介紹了3種主流的SRARC V8結構處理器,表 1[3-5]針對其各項性能、特性進行了總結。
表1 基于SPARC V8結構處理器的性能和特性分析表
在整個系統(tǒng)的開發(fā)過程中,包括了硬件設計、底層軟件支持庫、驅動程序、操作系統(tǒng)和上層應用程序等部分,本節(jié)只對系統(tǒng)的硬件設計進行簡要介紹。
項目設計要求主處理器使用32位RISC CPU,時鐘周期大于100MHz,運算能力大于30MIPS。選擇采用基于SPARC V8結構、具有浮點運算能力的處理器,即可滿足系統(tǒng)對CPU的性能參數(shù)的要求。系統(tǒng)要求配置128MB數(shù)據(jù)存儲器,2MB程序存儲器。
目前國內星上使用的處理器性能較低,而且依賴于進口,無法滿足航天器設計實現(xiàn)自主化研制的需求。為了改變這一現(xiàn)狀,系統(tǒng)打算以國內自行開發(fā)、研制的BM3802處理器為核心,設計實現(xiàn)能夠在外層空間環(huán)境下正常工作、在宇宙線照射條件下不出現(xiàn)暫態(tài)誤動作的、以容錯功能為主導的計算機體系結構。從而為以后大衛(wèi)星的研制提供有利的保障和堅實的基礎。
BM3802是基于SPARC V8結構的、AMBA總線的高性能32位RISC嵌入式處理器。
此處理器是一個高性能的32位嵌入式的處理器,它具有低電路復雜度和低功耗的特點。處理器包括整數(shù)單元、浮點處理單元、AMBA總線、獨立的指令Cache和數(shù)據(jù)Cache、硬件乘法器和除法器、存儲器控制器。BM3802結構[3]如圖2所示。
系統(tǒng)硬件設計采用以SPARC V8結構為核心的國產 BM3802處理器,主要由 BOOTROM、FLASH、SDRAM、復位電路、電源電路和外圍接口電路等組成。BOOTROM中存入系統(tǒng)的引導程序,使系統(tǒng)可以在沒有操作系統(tǒng)的支持下,構建出最簡單的軟件運行環(huán)境,可以在系統(tǒng)上電后直接運行。最小系統(tǒng)的結構框圖如圖3所示,板級實物圖如圖4所示。
圖3 SPARC結構最小系統(tǒng)示意圖
圖4 以BM3802處理器為基礎設計實現(xiàn)的板級實物圖
目前,以該最小系統(tǒng)為基礎設計實現(xiàn)的衛(wèi)星綜合電子系統(tǒng)已完成了一期階段的研制、生產與調試工作,項目成果見圖5。
目前,中國在航天系統(tǒng)應用研究中普遍采用了SPARC體系結構作為航天器計算機系統(tǒng)設計的基礎,可以說SPARC體系結構已成為航天器系統(tǒng)設計的一個新熱點。SPARC V8采用一種開放的體系結構標準,它作為芯片制造和應用的橋梁,一方面反映了在芯片上集成系統(tǒng)功能的工藝技術已經日趨成熟,另一方面也從根本上促進了高性能系統(tǒng)的研制和開發(fā)。尤其是在航天領域,體系結構的合理性和先進性與系統(tǒng)的各項性能指標是直接相關的,直接決定了系統(tǒng)的可使用性能。
圖5 綜合電子系統(tǒng)一期實物圖
目前,在綜合考慮衛(wèi)星、飛船和空間站等航天飛行器對微處理器的需求以及國內外研究狀況等各種因素的前提下,將SPARC V8設計思想滲透到實際的體系結構研究和應用中,對中國航天乃至整個計算機領域的發(fā)展都會起到促進作用,也為中國的航天器設計工作提供更為廣闊的發(fā)展平臺。
[1] 范建民.基于SPARC V8的RISC處理器中IU的設計和研究 [D].華南理工大學碩士論文,2005
[2] Gaisler J.A portable and fault-tolerantmicroprocessor based on the SPARC v8 architecture[C].Proceedings of International Conference on Dependable Systems and Networks,Washington,DC,USA,2002
[3] BM3802 32位空間處理器用戶手冊[M].中國航天時代電子公司,2005,4-49
[4] 蔣曉華,李付海,祁波.SPARC體系的S698系列SOC及其應用[J].單片機與嵌入式系統(tǒng)應用,2007,(8):84-85
[5] Gaisler R.LEON2 processor user'smanual(XST Edition)[M].北京:國防工業(yè)出版社,2005,36-207
The Com puter System Design Based on the SPARC A rchitecture Processor
SHI Lei1,LIU Bo1,ZHOU Kai2,3
(1.Beijing Institute of Control Engineering,Beijing 100190,China;2.Graduate School of National University of Defense Technology,Changsha 410073,China;3.China Academy of Space Technology,Beijing 100094,China)
This paper specifies the development of SPARC architecture and addresses the design of computer systems for spacecraft based on SPARC architecture.This paper puts emphasis on the details of SPARC V8 architecture and lists the processors by using SPARC V8 architecture.Finally it raises a processor system designed with the indigenouschip BM3802.
2007-11-26
施蕾 (1980-),女,北京人,工程師,研究方向為星載計算機設計(e-mail:shi_sissa@163.com)。
SPARC architecture;SPARC V8 processor;systematic structure;minimum system
V446.2
A
1674-1579(2008)03-0046-05