1引言
SPARC(Scalable Processor Architecture),是任何人或公司都能準(zhǔn)許和使用其于微處理器和半導(dǎo)體發(fā)展的開發(fā)技術(shù)規(guī)格。SPARC誕生與SUN Microsystems實驗室公司,它是加州大學(xué)伯克利的研究人員在RISC技術(shù)上研究發(fā)展起來的。1985年Sun微系統(tǒng)公司為了獲得更高的執(zhí)行效率和更為優(yōu)化的編譯器,并滿足其縮短開發(fā)周期、迅速投放市場的要求,提出了該體系結(jié)構(gòu)。該公司本身并不進行集成電路的設(shè)計和生產(chǎn),而是由多家半導(dǎo)體廠商以不同的VLSI實現(xiàn)為其進行生產(chǎn)。最終只要求用這些不同芯片構(gòu)成的系統(tǒng)均保證程序二進制兼容。這使得廠家能充分發(fā)揮自己的特長進一步改進工藝技術(shù)、提高性能??梢哉fSPARC是一個開放的體系結(jié)構(gòu)標(biāo)準(zhǔn),允許公眾制造商的加入。1987年,Sun和TI公司合作開發(fā)了RISC微處理器SPARC。1989年,SUN Microsystems轉(zhuǎn)移SPARC規(guī)范到一個獨立、非盈利組織,用于服務(wù)成員開發(fā)認(rèn)證。從最早的32位SPARC V7,到32位SPARC V8(哈佛結(jié)構(gòu)),一直發(fā)展到目前的64位SPARC V9(超標(biāo)量),使SPARC體系的RISC微處理器得到廣泛的發(fā)展。SPARC微處理器最突出的特點就是它的可擴展性,這是業(yè)界出現(xiàn)的第一款有可擴展性功能的微處理,SPARC的推出為Sun贏得了高端微處理器市場的領(lǐng)先地位。Sun公司以其性能優(yōu)秀的工作站聞名,這些工作站全都是采用Sun公司自己研發(fā)的SPARC芯片。
航天計算機是航天設(shè)備控制的中樞神經(jīng),隨著航天工程復(fù)雜性的不斷提高,設(shè)備對計算機的要求越來越高。航天電子產(chǎn)品不但要耐火箭起飛時的沖擊、振動等苛刻的力學(xué)環(huán)境,而且要承受宇宙空間的高溫、低溫、高真空、高輻射等極端條件;另外,由于在空間環(huán)境條件下,電子產(chǎn)品的可維護性非常差,而且一旦發(fā)生故障,其后果往往比較嚴(yán)重,甚至是致命的。因此相對于普通計算機,其可靠性要求更高。
在航天領(lǐng)域,美國現(xiàn)在使用的最高端的星載計算機,采用的是基于POWERPC體系結(jié)構(gòu)的。歐空局為了擺脫美國對其空間研發(fā)能力的制約而獨立開發(fā)了基于SPARC V7機構(gòu)的面向空間應(yīng)用的微處理器:ERC32,其輻射加固版本已經(jīng)成熟使用于航天環(huán)境中。06年5月22日,基于LEON SPARC V8的處理器也成功使用于航天工程??梢哉fSPARC體系結(jié)構(gòu)的CPU在今后的航天計劃中將發(fā)揮更大作用。
盡管國內(nèi)的IC研發(fā)和設(shè)計水平同國際先進水平相比還存在著較大的差距。但是,隨著國內(nèi)半導(dǎo)體工業(yè)的發(fā)展,國內(nèi)已能生產(chǎn)出可以在空間環(huán)境應(yīng)用的處理器,有些處理器已有在軌飛行的經(jīng)歷,但基于這些處理器的航天計算機性能比較低,處理能力不超過11MIPS,性能功耗比小,重量體積又偏大,不能適應(yīng)我國航天工程未來的發(fā)展。近年來,我國加速了軍用器件國產(chǎn)化的步伐,研制出了較高性能的處理器,本設(shè)計采用的國產(chǎn)CPU是32位RISC處理器,主頻150MHz,處理能力80MIPS@133MHz,這款CPU是目前國產(chǎn)的可在空間應(yīng)用的CPU中性能比較高的。本處理器基于SPARC V8 體系結(jié)構(gòu),內(nèi)部采用AMBA總線可擴展結(jié)構(gòu),帶有32kb指令緩存和32kb數(shù)據(jù)緩存。功耗低于1瓦,具有檢錯和糾錯功能,支持對寄存器堆和外部存儲器的EDAC,以及Cache的奇偶校驗。芯片采用0.18um CMOS工藝,抗γ總劑量:100Krad(Si)。
2 硬件實現(xiàn)方案
2.1 總體設(shè)計
本設(shè)計考慮到計算機的可擴展性,采用底板、主板、電源板分離,并在底板上預(yù)留了兩個擴展插槽,便于將來功能擴展時使用。
圖1 計算機總體框架圖
2.2 CPU主板設(shè)計
由于1553B總線具有極高的可靠性,因而在航空、航天、軍事等領(lǐng)域的電子聯(lián)網(wǎng)系統(tǒng)中得到廣泛應(yīng)用。1553B總線具有以下優(yōu)點:類似局域網(wǎng)結(jié)構(gòu);冗余容錯能力:支持“智能”遠置終端;高可靠的故障隔離性能;實時可確定性。本設(shè)計中引入1553B總線。
圖2 CPU主板框架圖
主板的布線要主要電磁兼容的影響,采用六層電路板,布線時主要電源分割和多層走線策略。另外用一片小的CPLD可以將簡單電路集成其中,簡化電路復(fù)雜程度。
2.3 其它硬件設(shè)計
電源板的設(shè)計,要考慮到為本系統(tǒng)提供高效和穩(wěn)定的電源。本系統(tǒng)電路較復(fù)雜,電源板要提供多個電平的電源給系統(tǒng)使用。底板的設(shè)計較為簡單,它把整個系統(tǒng)集成到一起。而擴展板設(shè)計主要是為了具體工程和項目需求而進行更改設(shè)計。
圖3 系統(tǒng)實物圖
3 底層軟件方案
3.1 V8匯編語言
3.1.1 語言格式
V8 的匯編語言以段(section)為單位組織源文件。段是相對獨立的、具有特定名稱的、不可分割的指令或者數(shù)據(jù)序列。段可以分為代碼段和數(shù)據(jù)段,代碼段存放執(zhí)行代碼,數(shù)據(jù)段存放代碼運行時需要用到的數(shù)據(jù)。一個源程序至少需要一個代碼段,大的程序可以包含多個代碼段和數(shù)據(jù)段。
V8 的匯編語言源程序經(jīng)過匯編處理后生成一個可執(zhí)行的鏡像文件(即.exe 文件),該可執(zhí)行文件包括下面三個部分:
一個或多個代碼段,代碼段通常是可讀的
一個包含初始值的數(shù)據(jù)段,這些數(shù)據(jù)段通常是可讀寫的
零個或多個不包含初始值的數(shù)據(jù)段,這些數(shù)據(jù)段被初始化為0
V8 匯編程序的基本結(jié)構(gòu)為:
.seg “text” !定義一個代碼段
.global data, start, hardreset !定義全局變量
start: !標(biāo)識程序開始,start 要定義為global
set data, %g1
set 3, %g2
add %g2, %g1, %g2
.seg “data”
data:
.word 128
3.1.2 程序設(shè)計
在應(yīng)用系統(tǒng)的程序設(shè)計中,若所有的編程任務(wù)均用匯編語言來完成,其工作量是很大的。所以,V8 體系結(jié)構(gòu)支持C 以及與匯編語言的混合編程,在一個完整的程序設(shè)計中,除了初始化部分用匯編語言完成以外,其主要的編程任務(wù)一般都用C 完成。匯編語言與C 的混合編程通常有以下幾種方式:
在C 代碼中嵌入?yún)R編指令
在匯編程序和C 程序之間進行變量的相互訪問
匯編程序和C 程序之間的相互調(diào)用
.seg “text”
.global start
start:
set 0x10e0, %g1
mov %g1, %psr
set 0x40000000, %g1
mov %g1, %tbr
set 0x40079000, %g1
mov %g1, %sp
call main
nop
nop
以上的程序段完成簡單的初始化,然后跳轉(zhuǎn)到main 函數(shù)所標(biāo)識的C 代碼處,如果用戶自己編寫初始化程序,則跳轉(zhuǎn)到的函數(shù)名稱可以自行定義,如果使用編譯器自帶的啟動程序,則必須定義main 函數(shù)為C 代碼主函數(shù)。
3.2 CPU初始化程序設(shè)計
當(dāng)使用一個嵌入式操作系統(tǒng)或者不使用嵌入式操作系統(tǒng)、一開始就執(zhí)行嵌入式應(yīng)用程序時,有許多因素需要考慮,主要有:
1、初始化執(zhí)行環(huán)境。
2、初始化應(yīng)用程序
例如:對于已初始化變量,要把初始值從ROM 復(fù)制到RAM 的,還要設(shè)置其他沒有初始化的變量為零。
3、接一個嵌入的可執(zhí)行的程序鏡像,將代碼和數(shù)據(jù)放入存儲器的特定區(qū)域里。
對于一個沒有嵌入式操作系統(tǒng)支持的嵌入式應(yīng)用程序來說,ROM 中的代碼必須規(guī)定一個初始化和啟動執(zhí)行的應(yīng)用程序的方法。
圖4 CPU初始化流程圖
3.3 目前工作及展望
星載計算機的基本設(shè)計和調(diào)試已經(jīng)完成,考慮到軟件的可重用性,將引入實時操作系統(tǒng),便于統(tǒng)一軟件接口和減少工程中軟件工作量。
4 結(jié)論
針對目前星載計算機CPU基本依賴進口現(xiàn)狀,本設(shè)計使用性能較高國產(chǎn)基于SPARC V8的CPU,設(shè)計實現(xiàn)了用于未來航天工程的星載計算機,對于航天技術(shù)的獨立自主發(fā)展有一定意義,對星載計算機CPU國產(chǎn)化是一種有益探索。