1.前言
前幾天我看到知乎上的一篇文章《時(shí)代的眼淚:繁華落盡的SPARC處理器》,大致上講述了一下Sun公司的UltraSPARC處理器,那時(shí)左批HP,右打IBM,儼然一副高高在上的氣勢(shì)。我覺得關(guān)于SPARC如何一步一步從繁榮走向平淡,又是如何在歷史長(zhǎng)河中發(fā)揮出濃墨重彩的一筆,我就不贅述了。這篇文章主要想講一些sparc體系相關(guān)的問題。目前,sparc出現(xiàn)在我們視野中并不多見,其實(shí)利用sparc處理器一直是航天上面在使用,由于其特殊的架構(gòu)以及目前美國(guó)對(duì)中國(guó)的態(tài)勢(shì),sparc架構(gòu)在航天、飛機(jī)、雷達(dá)領(lǐng)域的利用也是越來越重要了。目前北京微電子技術(shù)研究所出來幾款SPARC V8架構(gòu)的芯片。其中BM3803是基于SPARC V8體系結(jié)構(gòu)的32位精簡(jiǎn)指令集的國(guó)產(chǎn)嵌入式芯片,其特點(diǎn)是功能強(qiáng)、可靠性高、低功耗等等。下面從系統(tǒng)啟動(dòng)、窗口寄存器、中斷處理這三部分看一看sparc v8處理器的特點(diǎn)。
2.sparc 芯片啟動(dòng)
一般我們做嵌入式開發(fā)都是用C語(yǔ)言編寫實(shí)現(xiàn),但是實(shí)際情況是在系統(tǒng)上電的之后,一般往往會(huì)執(zhí)行一段初始化的匯編代碼,可以理解為系統(tǒng)的BIOS。對(duì)于sparc v8架構(gòu)的bm3803處理器來說,地址分配的空間如下:
一般芯片啟動(dòng)后,執(zhí)行的代碼都是在0地址處,所以固話的代碼放在PROM的0地址空間。
需要設(shè)置C語(yǔ)言可以執(zhí)行的棧空間以及清除bss段。其中棧的布局可以參考如下:
3.寄存器
3.1 窗口寄存器
由于sparc架構(gòu)集成伯克利RISC結(jié)構(gòu),所以窗口寄存器是一個(gè)非常重要的特性。也就是說,一個(gè)窗口寄存器組只對(duì)當(dāng)前的程序可見。而一個(gè)寄存器窗口又包括32個(gè)無浮點(diǎn)的寄存器。
其中SPARC結(jié)構(gòu)規(guī)定了一共可以有N個(gè)寄存器的窗口,N=2^n(1=
當(dāng)執(zhí)行SAVE指令的時(shí)候,會(huì)分配一個(gè)全新的串口CWP-1。當(dāng)RESTORE指令的時(shí)候,則CWP+1。其中比較有特點(diǎn)是,兩個(gè)窗口是有8個(gè)寄存器公用的,也就是上一個(gè)窗口的out為下個(gè)窗口的in。這樣可以提高程序的執(zhí)行效率,不用每次都處理所有的寄存器。
3.2 特殊寄存器
一般來說,sparc上的特殊寄存器需要注意的是處理器狀態(tài)寄存器(Processor State Register),名稱為%PSR。以及無效窗口標(biāo)識(shí)(Widows Invalid Register),名稱為%WIM。
其中PSR主要控制CWP窗口操作、中斷處理開關(guān)、以及Trap的處理。
WIM是無效窗口,BIT0~BIT7分別對(duì)應(yīng)窗口0~7,在CPU的8個(gè)寄存器窗口中只能存在一個(gè)窗口為無效窗口。
4.中斷處理
在sparc處理中斷和陷阱的時(shí)候,也是首先需要一個(gè)trap的地址。一般進(jìn)入中斷后,會(huì)進(jìn)入另外的一個(gè)模式,也就是說會(huì)開辟一個(gè)新的窗口,比如我們做任務(wù)切換的時(shí)候。sparc是由軟中斷(TA指令)實(shí)現(xiàn)。SPARC架構(gòu)是不支持直接對(duì)PC指針進(jìn)行操作的,而是CPU在發(fā)生中斷的時(shí)候會(huì)將當(dāng)前的PC、NPC寫到寄存器%l1,%l2寄存器中。在中斷結(jié)束返回的時(shí)候,CPU自動(dòng)將%l1,%l2內(nèi)容寫到PC、NPC。這樣就實(shí)現(xiàn)了一個(gè)任務(wù)的切換過程。
當(dāng)發(fā)生中斷的嵌套的時(shí)候,也是需要通過中斷棧來實(shí)現(xiàn)當(dāng)前現(xiàn)場(chǎng)的保存。
5.總結(jié)
上述簡(jiǎn)單的介紹了一下sparc處理器的一些特點(diǎn),熟悉處理器架構(gòu)的朋友可以看一下和arm、mips、risc-v體系架構(gòu)的設(shè)計(jì)的異同。通過學(xué)習(xí)和理解不同處理器架構(gòu)的設(shè)計(jì)思想,從而更好的掌握程序設(shè)計(jì)的最佳思路。
-
處理器
+關(guān)注
關(guān)注
68文章
19440瀏覽量
231322 -
SPARC
+關(guān)注
關(guān)注
0文章
16瀏覽量
9913
原文標(biāo)題:sparc處理器淺析
文章出處:【微信號(hào):Embeded_IoT,微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
歐空局為何從SPARC換成了RISC-V
怎么通過sparc了解intel homologos處理器
抗輻射SPARC處理器在航天應(yīng)用中有什么優(yōu)勢(shì)?
ARM處理器的三大特點(diǎn)
ARM處理器的特點(diǎn)有哪些
ARM微處理器的特點(diǎn)及其架構(gòu)解析
REMS操作系統(tǒng)在SPARC-V8處理器上的應(yīng)用
SPARC微處理器綜合介紹
![<b class='flag-5'>SPARC</b>微<b class='flag-5'>處理器</b>綜合介紹](https://file1.elecfans.com//web2/M00/A5/A0/wKgZomUMOUuAMjcWAACEYP35axg274.jpg)
SPARC V8結(jié)構(gòu)嵌入式微處理器的軟件集成開發(fā)環(huán)境總體設(shè)計(jì)
![<b class='flag-5'>SPARC</b> V8結(jié)構(gòu)嵌入式微<b class='flag-5'>處理器</b>的軟件集成開發(fā)環(huán)境總體設(shè)計(jì)](https://file.elecfans.com/web2/M00/49/3D/poYBAGKhwJKATqrLAABROFz7DRQ730.png)
關(guān)于SPARC微處理器綜述
![關(guān)于<b class='flag-5'>SPARC</b>微<b class='flag-5'>處理器</b>綜述](https://file.elecfans.com/web2/M00/49/40/poYBAGKhwJWADLf0AABtbbNB0YQ936.png)
sparc v8架構(gòu)的異常處理
![<b class='flag-5'>sparc</b> v8<b class='flag-5'>架構(gòu)</b>的異常<b class='flag-5'>處理</b>](https://file.elecfans.com/web1/M00/C8/30/pIYBAF9tn72AScsnAAAsE0FzCbU725.png)
評(píng)論