《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于SPARC V8 的嵌入式星載計(jì)算機(jī)
基于SPARC V8 的嵌入式星載計(jì)算機(jī)
摘要: 在航天領(lǐng)域,美國現(xiàn)在使用的最高端的星載計(jì)算機(jī),采用的是基于POWERPC體系結(jié)構(gòu)的。歐空局為了擺脫美國對(duì)其空間研發(fā)能力的制約而獨(dú)立開發(fā)了基于SPARCV7機(jī)構(gòu)的面向空間應(yīng)用的微處理器:ERC32,其輻射加固版本已經(jīng)成熟使用于航天環(huán)境中。06年5月22日,基于LEONSPARCV8的處理器也成功使用于航天工程??梢哉fSPARC體系結(jié)構(gòu)的CPU在今后的航天計(jì)劃中將發(fā)揮更大作用。
Abstract:
Key words :

 1引言

SPARC" title="SPARC">SPARC(Scalable Processor Architecture),是任何人或公司都能準(zhǔn)許和使用其于微處理器和半導(dǎo)體發(fā)展的開發(fā)技術(shù)規(guī)格。SPARC誕生與SUN Microsystems實(shí)驗(yàn)室公司,它是加州大學(xué)伯克利的研究人員在RISC技術(shù)上研究發(fā)展起來的。1985年Sun微系統(tǒng)公司為了獲得更高的執(zhí)行效率和更為優(yōu)化的編譯器,并滿足其縮短開發(fā)周期、迅速投放市場(chǎng)的要求,提出了該體系結(jié)構(gòu)。該公司本身并不進(jìn)行集成電路的設(shè)計(jì)和生產(chǎn),而是由多家半導(dǎo)體廠商以不同的VLSI實(shí)現(xiàn)為其進(jìn)行生產(chǎn)。最終只要求用這些不同芯片構(gòu)成的系統(tǒng)均保證程序二進(jìn)制兼容。這使得廠家能充分發(fā)揮自己的特長(zhǎng)進(jìn)一步改進(jìn)工藝技術(shù)、提高性能。可以說SPARC是一個(gè)開放的體系結(jié)構(gòu)標(biāo)準(zhǔn),允許公眾制造商的加入。1987年,Sun和TI公司合作開發(fā)了RISC微處理器SPARC。1989年,SUN Microsystems轉(zhuǎn)移SPARC規(guī)范到一個(gè)獨(dú)立、非盈利組織,用于服務(wù)成員開發(fā)認(rèn)證。從最早的32位SPARC V7,到32位SPARC V8(哈佛結(jié)構(gòu)),一直發(fā)展到目前的64位SPARC V9(超標(biāo)量),使SPARC體系的RISC微處理器得到廣泛的發(fā)展。SPARC微處理器最突出的特點(diǎn)就是它的可擴(kuò)展性,這是業(yè)界出現(xiàn)的第一款有可擴(kuò)展性功能的微處理,SPARC的推出為Sun贏得了高端微處理器市場(chǎng)的領(lǐng)先地位。Sun公司以其性能優(yōu)秀的工作站聞名,這些工作站全都是采用Sun公司自己研發(fā)的SPARC芯片。

航天計(jì)算機(jī)" title="航天計(jì)算機(jī)">航天計(jì)算機(jī)是航天設(shè)備控制的中樞神經(jīng),隨著航天工程復(fù)雜性的不斷提高,設(shè)備對(duì)計(jì)算機(jī)的要求越來越高。航天電子產(chǎn)品不但要耐火箭起飛時(shí)的沖擊、振動(dòng)等苛刻的力學(xué)環(huán)境,而且要承受宇宙空間的高溫、低溫、高真空、高輻射等極端條件;另外,由于在空間環(huán)境條件下,電子產(chǎn)品的可維護(hù)性非常差,而且一旦發(fā)生故障,其后果往往比較嚴(yán)重,甚至是致命的。因此相對(duì)于普通計(jì)算機(jī),其可靠性要求更高。

在航天領(lǐng)域,美國現(xiàn)在使用的最高端的星載計(jì)算機(jī),采用的是基于POWERPC體系結(jié)構(gòu)的。歐空局為了擺脫美國對(duì)其空間研發(fā)能力的制約而獨(dú)立開發(fā)了基于SPARC V7機(jī)構(gòu)的面向空間應(yīng)用的微處理器:ERC32,其輻射加固版本已經(jīng)成熟使用于航天環(huán)境中。06年5月22日,基于LEON SPARC V8的處理器也成功使用于航天工程??梢哉fSPARC體系結(jié)構(gòu)的CPU" title="CPU">CPU在今后的航天計(jì)劃中將發(fā)揮更大作用。

盡管國內(nèi)的IC研發(fā)和設(shè)計(jì)水平同國際先進(jìn)水平相比還存在著較大的差距。但是,隨著國內(nèi)半導(dǎo)體工業(yè)的發(fā)展,國內(nèi)已能生產(chǎn)出可以在空間環(huán)境應(yīng)用的處理器,有些處理器已有在軌飛行的經(jīng)歷,但基于這些處理器的航天計(jì)算機(jī)性能比較低,處理能力不超過11MIPS,性能功耗比小,重量體積又偏大,不能適應(yīng)我國航天工程未來的發(fā)展。近年來,我國加速了軍用器件國產(chǎn)化的步伐,研制出了較高性能的處理器,本設(shè)計(jì)采用的國產(chǎn)CPU是32位RISC處理器,主頻150MHz,處理能力80MIPS@133MHz,這款CPU是目前國產(chǎn)的可在空間應(yīng)用的CPU中性能比較高的。本處理器基于SPARC V8 體系結(jié)構(gòu),內(nèi)部采用AMBA總線可擴(kuò)展結(jié)構(gòu),帶有32kb指令緩存和32kb數(shù)據(jù)緩存。功耗低于1瓦,具有檢錯(cuò)和糾錯(cuò)功能,支持對(duì)寄存器堆和外部存儲(chǔ)器的EDAC,以及Cache的奇偶校驗(yàn)。芯片采用0.18um CMOS工藝,抗γ總劑量:100Krad(Si)。

2 硬件實(shí)現(xiàn)方案

2.1 總體設(shè)計(jì)

本設(shè)計(jì)考慮到計(jì)算機(jī)的可擴(kuò)展性,采用底板、主板、電源板分離,并在底板上預(yù)留了兩個(gè)擴(kuò)展插槽,便于將來功能擴(kuò)展時(shí)使用。

 


圖1 計(jì)算機(jī)總體框架圖

2.2 CPU主板設(shè)計(jì)

由于1553B總線具有極高的可靠性,因而在航空、航天、軍事等領(lǐng)域的電子聯(lián)網(wǎng)系統(tǒng)中得到廣泛應(yīng)用。1553B總線具有以下優(yōu)點(diǎn):類似局域網(wǎng)結(jié)構(gòu);冗余容錯(cuò)能力:支持“智能”遠(yuǎn)置終端;高可靠的故障隔離性能;實(shí)時(shí)可確定性。本設(shè)計(jì)中引入1553B總線。

 


圖2 CPU主板框架圖

主板的布線要主要電磁兼容的影響,采用六層電路板,布線時(shí)主要電源分割和多層走線策略。另外用一片小的CPLD可以將簡(jiǎn)單電路集成其中,簡(jiǎn)化電路復(fù)雜程度。

2.3 其它硬件設(shè)計(jì)

電源板的設(shè)計(jì),要考慮到為本系統(tǒng)提供高效和穩(wěn)定的電源。本系統(tǒng)電路較復(fù)雜,電源板要提供多個(gè)電平的電源給系統(tǒng)使用。底板的設(shè)計(jì)較為簡(jiǎn)單,它把整個(gè)系統(tǒng)集成到一起。而擴(kuò)展板設(shè)計(jì)主要是為了具體工程和項(xiàng)目需求而進(jìn)行更改設(shè)計(jì)。

 


圖3 系統(tǒng)實(shí)物圖

3 底層軟件方案

3.1 V8匯編語言

3.1.1 語言格式

V8 的匯編語言以段(section)為單位組織源文件。段是相對(duì)獨(dú)立的、具有特定名稱的、不可分割的指令或者數(shù)據(jù)序列。段可以分為代碼段和數(shù)據(jù)段,代碼段存放執(zhí)行代碼,數(shù)據(jù)段存放代碼運(yùn)行時(shí)需要用到的數(shù)據(jù)。一個(gè)源程序至少需要一個(gè)代碼段,大的程序可以包含多個(gè)代碼段和數(shù)據(jù)段。

V8 的匯編語言源程序經(jīng)過匯編處理后生成一個(gè)可執(zhí)行的鏡像文件(即.exe 文件),該可執(zhí)行文件包括下面三個(gè)部分:

一個(gè)或多個(gè)代碼段,代碼段通常是可讀的

一個(gè)包含初始值的數(shù)據(jù)段,這些數(shù)據(jù)段通常是可讀寫的

零個(gè)或多個(gè)不包含初始值的數(shù)據(jù)段,這些數(shù)據(jù)段被初始化為0

V8 匯編程序的基本結(jié)構(gòu)為:

.seg “text” !定義一個(gè)代碼段

.global data, start, hardreset !定義全局變量

start: !標(biāo)識(shí)程序開始,start 要定義為global

set data, %g1

set 3, %g2

add %g2, %g1, %g2

.seg “data”

data:

.word 128

3.1.2 程序設(shè)計(jì)

在應(yīng)用系統(tǒng)的程序設(shè)計(jì)中,若所有的編程任務(wù)均用匯編語言來完成,其工作量是很大的。所以,V8 體系結(jié)構(gòu)支持C 以及與匯編語言的混合編程,在一個(gè)完整的程序設(shè)計(jì)中,除了初始化部分用匯編語言完成以外,其主要的編程任務(wù)一般都用C 完成。匯編語言與C 的混合編程通常有以下幾種方式:

在C 代碼中嵌入?yún)R編指令

在匯編程序和C 程序之間進(jìn)行變量的相互訪問

匯編程序和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

以上的程序段完成簡(jiǎn)單的初始化,然后跳轉(zhuǎn)到main 函數(shù)所標(biāo)識(shí)的C 代碼處,如果用戶自己編寫初始化程序,則跳轉(zhuǎn)到的函數(shù)名稱可以自行定義,如果使用編譯器自帶的啟動(dòng)程序,則必須定義main 函數(shù)為C 代碼主函數(shù)。

3.2 CPU初始化程序設(shè)計(jì)

當(dāng)使用一個(gè)嵌入式操作系統(tǒng)或者不使用嵌入式操作系統(tǒng)、一開始就執(zhí)行嵌入式應(yīng)用程序時(shí),有許多因素需要考慮,主要有:

1、初始化執(zhí)行環(huán)境。

2、初始化應(yīng)用程序

例如:對(duì)于已初始化變量,要把初始值從ROM 復(fù)制到RAM 的,還要設(shè)置其他沒有初始化的變量為零。

3、接一個(gè)嵌入的可執(zhí)行的程序鏡像,將代碼和數(shù)據(jù)放入存儲(chǔ)器的特定區(qū)域里。

對(duì)于一個(gè)沒有嵌入式操作系統(tǒng)支持的嵌入式應(yīng)用程序來說,ROM 中的代碼必須規(guī)定一個(gè)初始化和啟動(dòng)執(zhí)行的應(yīng)用程序的方法。

 


圖4 CPU初始化流程圖

3.3 目前工作及展望

星載計(jì)算機(jī)的基本設(shè)計(jì)和調(diào)試已經(jīng)完成,考慮到軟件的可重用性,將引入實(shí)時(shí)操作系統(tǒng),便于統(tǒng)一軟件接口和減少工程中軟件工作量。

4 結(jié)論

針對(duì)目前星載計(jì)算機(jī)CPU基本依賴進(jìn)口現(xiàn)狀,本設(shè)計(jì)使用性能較高國產(chǎn)基于SPARC V8的CPU,設(shè)計(jì)實(shí)現(xiàn)了用于未來航天工程的星載計(jì)算機(jī),對(duì)于航天技術(shù)的獨(dú)立自主發(fā)展有一定意義,對(duì)星載計(jì)算機(jī)CPU國產(chǎn)化是一種有益探索。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。