久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ARM和MIPS架構(gòu)

 abin30 2021-03-16

ARM體系

1,、歷史

    1978年12月5日,物理學(xué)家赫爾曼·豪澤(Hermann Hauser)和工程師Chris Curry,,在英國(guó)劍橋創(chuàng)辦了CPU公司(Cambridge Processing Unit),,主要業(yè)務(wù)是為當(dāng)?shù)厥袌?chǎng)供應(yīng)電子設(shè)備。

                                                    http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_1_20210316040920896.jpg

                1979年,,CPU公司改名為Acorn計(jì)算機(jī)公司,。

                                                             http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_2_20210316040922302.jpg

        起初,Acorn公司打算使用摩托羅拉公司的16位芯片,,但是發(fā)現(xiàn)這種芯片太慢也太貴,。"一臺(tái)售價(jià)500英鎊的機(jī)器,不可能使用價(jià)格100英鎊的CPU,!"他們轉(zhuǎn)而向Intel公司索要80286芯片的設(shè)計(jì)資料,,但是遭到拒絕,于是被迫自行研發(fā),。(Intel會(huì)不會(huì)為當(dāng)年的這個(gè)決定后悔萬(wàn)分,?)

        1985年,Roger Wilson和Steve Furber設(shè)計(jì)了他們自己的第一代32位,、6M Hz的處理器,,用它做出了一臺(tái)RISC指令集的計(jì)算機(jī),簡(jiǎn)稱ARM(Acorn RISC Machine),。這就是ARM這個(gè)名字的由來(lái),。

                                                    http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_3_20210316040922443.jpg

         RISC的全稱是"精簡(jiǎn)指令集計(jì)算機(jī)"(reduced instruction set computer),它支持的指令比較簡(jiǎn)單,,所以功耗小,、價(jià)格便宜,,特別合適移動(dòng)設(shè)備。早期使用ARM芯片的典型設(shè)備,,就是蘋(píng)果公司的牛頓PDA,。

         1990年11月27日,Acorn公司正式改組為ARM計(jì)算機(jī)公司,。蘋(píng)果公司出資150萬(wàn)英鎊,,芯片廠商VLSI出資25萬(wàn)英鎊,Acorn本身則以150萬(wàn)英鎊的知識(shí)產(chǎn)權(quán)和12名工程師入股,。公司的辦公地點(diǎn)非常簡(jiǎn)陋,,就是一個(gè)谷倉(cāng)。

                                          http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_4_20210316040922599.jpghttp://image109.360doc.com/DownloadImg/2021/03/1616/217814673_5_20210316040922974.jpg

         公司成立后,,業(yè)務(wù)一度很不景氣,,工程師們?nèi)诵幕袒蹋瑩?dān)心將要失業(yè),。由于缺乏資金,,ARM做出了一個(gè)意義深遠(yuǎn)的決定:自己不制造芯片,只將芯片的設(shè)計(jì)方案授權(quán)(licensing)給其他公司,,由它們來(lái)生產(chǎn),。正是這個(gè)模式,最終使得ARM芯片遍地開(kāi)花,,將封閉設(shè)計(jì)的Intel公司置于"人民戰(zhàn)爭(zhēng)"的汪洋大海,。

                                      http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_6_20210316040923209.jpg

        20世紀(jì)90年代,ARM公司的業(yè)績(jī)平平,,處理器的出貨量徘徊不前,。但是進(jìn)入21世紀(jì)之后,由于手機(jī)的快速發(fā)展,,出貨量呈現(xiàn)爆炸式增長(zhǎng),,ARM處理器占領(lǐng)了全球手機(jī)市場(chǎng)。2006年,,全球ARM芯片出貨量為20億片,,2010年預(yù)計(jì)將達(dá)到45億片。

                               http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_7_20210316040923365.jpg

        2007年底,,ARM的雇員總數(shù)為1728人,,持有專利700項(xiàng)(另有900項(xiàng)正在申請(qǐng)批準(zhǔn)中),全球分支機(jī)構(gòu)31家,,合作伙伴200家,,年收入2.6億英鎊。

       2011年,ARM公司宣布收購(gòu)了Keil公司,。Keil公司是一家業(yè)界領(lǐng)先的微控制器(MCU)軟件開(kāi)發(fā)工具的獨(dú)立供應(yīng)商

       展望未來(lái),,即使Intel成功地實(shí)施了Atom戰(zhàn)略,將x86芯片的功耗和價(jià)格大大降低,,它與ARM競(jìng)爭(zhēng)也將非常吃力,。因?yàn)锳RM的商業(yè)模式是開(kāi)放的,任何廠商都可以購(gòu)買授權(quán),,所以未來(lái)并不是Intel vs. ARM,而是Intel vs. 世界上所有其他半導(dǎo)體公司,。那樣的話,,Intel的勝算能有多少呢?

                               http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_8_20210316040923599.jpg

2,、RISC和CISC

         RISC:精簡(jiǎn)指令集處理器,,Reduced Instruction Set Computer

                   RISC結(jié)構(gòu)簡(jiǎn)單,選取了使用頻率高的簡(jiǎn)單指令,,指令長(zhǎng)度固定,,多為單周期指令

                   在功耗、體積,、價(jià)格等方面有很大優(yōu)勢(shì),,多用于嵌入式領(lǐng)域

         CISC:復(fù)雜指令集處理器

                   側(cè)重于硬件執(zhí)行指令的功能性,CISC指令及處理器的硬件結(jié)構(gòu)復(fù)雜

                   CISC指令復(fù)雜,,指令長(zhǎng)度與周期不固定,,在處理能力上有優(yōu)勢(shì)

3、ARM產(chǎn)品線

 ARM11以后的產(chǎn)品改用Cortex命名,,并分成A,、R、M三個(gè)分支,,旨在為各種不同的市場(chǎng)提供服務(wù)

         Cortex-A: 面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應(yīng)用

         Cortex-R: 實(shí)時(shí)處理器為要求可靠性,、容錯(cuò)功能和實(shí)時(shí)響應(yīng)的嵌入式系統(tǒng)提供高性能解決方案

         Cortex-M: 針對(duì)成本和功耗敏感的MCU和終端應(yīng)用,一般不跑操作系統(tǒng)   

                                               http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_9_202103160409245

4,、ARM架構(gòu)和ARM內(nèi)核

 ARM處理器與架構(gòu)對(duì)應(yīng)表

                                  http://image109.360doc.com/DownloadImg/2021/03/1616/217814673_10_20210316040924333

ARM核對(duì)應(yīng)的時(shí)間表

                               http://pubimage.360doc.com/wz/default.gif

                               http://pubimage.360doc.com/wz/default.gif

 

5,、ARM的特點(diǎn)

ARM 數(shù)據(jù)類型約定:      

         Byte:8bits(1byte)

         Halfword:16bits(2byte)

         Word:32bits(4byte)

Char:八位(Java中為16位)

指令集:

         大部分ARM支持ARM指令集與Thumb指令集

         ARM指令集32bit,即每條指令占用32為的存儲(chǔ)空間

         Thumb指令集16bit

注意:

        Thumb指令集不是完整的指令集,,它是ARM指令集的子集,。但是Thumb指令具有更高的代碼密度,即占用存儲(chǔ)空間小,,僅為ARM代碼規(guī)格的65%,,但其性能卻下降的很少。所以,,Thumb指令集使ARM處理器能應(yīng)用到有限的存儲(chǔ)帶寬,,并且,,代碼密度要求很高的嵌入式系統(tǒng)中去。

運(yùn)行ARM指令:

         所有指令必須word對(duì)齊

         pc值由其[31:2]決定,,[1:0]位未定義,,因?yàn)橹噶畲鎯?chǔ)的起始地址必須為4的整數(shù)倍

 

ARM中指令本身是多少位在內(nèi)存存儲(chǔ)時(shí)就應(yīng)該多少位對(duì)其

 

多字節(jié)數(shù)據(jù)的存儲(chǔ):

                  小端對(duì)齊:低地址放低有效位,高地址放高有效位

                  大端對(duì)齊:低地址放高有效位,,高地址放低有效位

         ARM默認(rèn)是小端對(duì)齊

        

6,、ARM的工作模式

ARM Cortex-A處理器有8個(gè)基本工作模式:

         User:   非特權(quán)模式,一般在執(zhí)行上層的應(yīng)用程序時(shí)處理器處于該模式

         FIQ:    當(dāng)一個(gè)高優(yōu)先級(jí)的中斷產(chǎn)生時(shí)處理器將自動(dòng)進(jìn)入這種模式

         IRQ:    當(dāng)一個(gè)低優(yōu)先級(jí)(normal) 中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式

         SVC:    當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)將會(huì)進(jìn)入這種模式

         Abort:  當(dāng)存取異常時(shí)將會(huì)進(jìn)入這種模式

         Undef:  當(dāng)執(zhí)行未定義指令時(shí)會(huì)進(jìn)入這種模式

         System: 使用和User模式相同寄存器集的特權(quán)模式

 

         Cortex-A處理器特有模式:

         Monitor:為了安全而擴(kuò)展出的用于執(zhí)行安全監(jiān)控代碼的模式

        

模式的分類:

                   1)除User模式外其他七種模式都是特權(quán)模式 - 權(quán)限比較高

                   2)FIQ,、IRQ,、SVC、Abort,、Undef異常模式 - 產(chǎn)生異常時(shí)進(jìn)入這幾種模式

         特定的模式下執(zhí)行特定的代碼,,完成特定的功能,擁有特定的權(quán)限

7,、不同版本的ARM的區(qū)別

1,、架構(gòu)不同

              ARM7:ARMv4架構(gòu)

              ARM9:ARMv5架構(gòu),

              ARM11:ARMv6架構(gòu),,

              ARM-Cortex 系列:ARMv7架構(gòu),。

2、具體特點(diǎn)

            ARM7:沒(méi)有MMU(內(nèi)存管理單元),,只能叫做MCU(微控制器),,不能運(yùn)行諸如Linux、WinCE等這些現(xiàn)代的多用戶多進(jìn)程操作系統(tǒng),,因?yàn)檫\(yùn)行這些系統(tǒng)需要MMU,,才能給每個(gè)用戶進(jìn)程分配進(jìn)程自己獨(dú)立的地址空間。ucOS,、ucLinux這些精簡(jiǎn)實(shí)時(shí)的RTOS不需要MMU,,當(dāng)然可以在ARM7上運(yùn)行。

            ARM9,、ARM11,,是嵌入式CPU(處理器),帶有MMU,,可以運(yùn)行諸如Linux等多用戶多進(jìn)程的操作系統(tǒng),,應(yīng)用場(chǎng)合也不同于ARM7。

            Cortex來(lái)命名,,并分成Cortex-A,、Cortex-R、Cortex-M三個(gè)系列。三大系列分工明確:

                        “A”系列面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應(yīng)用,;

                         “R”系列針對(duì)實(shí)時(shí)系統(tǒng),;

                         “M”系列對(duì)微控制器。

       簡(jiǎn)單的說(shuō)Cortex-A系列是用于移動(dòng)領(lǐng)域的CPU,,Cortex-R和Cortex-M系列是用于實(shí)時(shí)控制領(lǐng)域的MCU,。所以看上去ARM7跟Cortex-M很像,因?yàn)樗麄兌际荕CU,,但確是不同代不同架構(gòu)的MCU(Cortex-M比ARM7高了三代?。孕阅芤灿泻艽蟮牟罹?。此外,,Cortex-M系列還細(xì)分為M0、M3,、M4和超低功耗的M0+,,用戶依據(jù)成本,、性能,、功耗等因素來(lái)選擇芯片。

8,、ARM的流水線

         流水線技術(shù)通過(guò)多個(gè)功能部件并行工作來(lái)縮短程序執(zhí)行時(shí)間,,提高處理器核的效率和吞吐率,從而成為微處理器設(shè)計(jì)中最為重要的技術(shù)之一,。

          ARM7處理器核使用了典型三級(jí)流水線的馮·諾伊曼結(jié)構(gòu)(指令和數(shù)據(jù)存儲(chǔ)在一起),。

          ARM9系列則采用了基于五級(jí)流水線的哈佛結(jié)構(gòu)(指令和數(shù)據(jù)分開(kāi)存儲(chǔ))。通過(guò)增加流水線級(jí)數(shù)簡(jiǎn)化了流水線各級(jí)的邏輯,,進(jìn)一步提高了處理器的性能,。

         ARM7的三級(jí)流水線在執(zhí)行單元完成了大量的工作,包括與操作數(shù)相關(guān)的寄存器和存儲(chǔ)器讀寫(xiě)操作,、ALU操作以及相關(guān)器件之間的數(shù)據(jù)傳輸,。執(zhí)行單元的工作往往占用多個(gè)時(shí)鐘周期,從而成為系統(tǒng)性能的瓶頸,。

        ARM9采用了更為高效的五級(jí)流水線設(shè)計(jì),,增加了2個(gè)功能部件分別訪問(wèn)存儲(chǔ)器并寫(xiě)回結(jié)果,且將讀寄存器的操作轉(zhuǎn)移到譯碼部件上,,使流水線各部件在功能上更平衡,;同時(shí)其哈佛架構(gòu)避免了數(shù)據(jù)訪問(wèn)和取指的總線沖突。

        然而,,不論是三級(jí)流水線還是五級(jí)流水線,,當(dāng)出現(xiàn)多周期指令、跳轉(zhuǎn)分支指令和中斷發(fā)生的時(shí)候,流水線都會(huì)發(fā)生阻塞,,而且相鄰指令之間也可能因?yàn)榧拇嫫鳑_突導(dǎo)致流水線阻塞,,降低流水線的效率。

8.1,、 ARM7流水線技術(shù)

        ARM7系列處理器中每條指令分取指,、譯碼、執(zhí)行三個(gè)階段,,分別在不同的功能部件上依次獨(dú)立完成,。

         取指部件完成從存儲(chǔ)器裝載一條指令,

         通過(guò)譯碼部件產(chǎn)生下一周期數(shù)據(jù)路徑需要的控制信號(hào),,完成寄存器的解碼,,

         再送到執(zhí)行單元完成寄存器的讀取、ALU運(yùn)算及運(yùn)算結(jié)果的寫(xiě)回,,需要訪問(wèn)存儲(chǔ)器的指令完成存儲(chǔ)器的訪問(wèn),。

         流水線上雖然一條指令仍需3個(gè)時(shí)鐘周期來(lái)完成,但通過(guò)多個(gè)部件并行,,使得處理器的吞吐率約為每個(gè)周期一條指令,,提高了流式指令的處理速度,從而可達(dá)到 0.9 MIPS/MHz的指令執(zhí)行速度(MIPS(Million Instructions Per Second):?jiǎn)巫珠L(zhǎng)定點(diǎn)指令平均執(zhí)行速度 Million Instructions Per Second的縮寫(xiě),,每秒處理的百萬(wàn)級(jí)的機(jī)器語(yǔ)言指令數(shù),。)

         在三級(jí)流水線下,通過(guò)R15訪問(wèn)PC(程序計(jì)數(shù)器)時(shí)會(huì)出現(xiàn)取指位置和執(zhí)行位置不同的現(xiàn)象,。這須結(jié)合流水線的執(zhí)行情況考慮,,取指部件根據(jù)PC取指,取指完成后PC+4送到PC,,并把取到的指令傳遞給譯碼部件,,然后取指部件根據(jù)新的PC取指。因?yàn)槊織l指令4字節(jié),,故PC值等于當(dāng)前程序執(zhí)行位置+8,。

8.2、 ARM9流水線技術(shù)

ARM9系列處理器的流水線分為取指,、譯碼,、執(zhí)行、訪存,、回寫(xiě),。

          取指部件完成從指令存儲(chǔ)器取指;

          譯碼部件讀取寄存器操作數(shù),,與三級(jí)流水線中不占有數(shù)據(jù)路徑區(qū)別很大,;

          執(zhí)行部件產(chǎn)生ALU運(yùn)算結(jié)果或產(chǎn)生存儲(chǔ)器地址(對(duì)于存儲(chǔ)器訪問(wèn)指令來(lái)講),;

          訪存部件訪問(wèn)數(shù)據(jù)存儲(chǔ)器;

          回寫(xiě)部件完成執(zhí)行結(jié)果寫(xiě)回寄存器,。

         把三級(jí)流水線中的執(zhí)行單元進(jìn)一步細(xì)化,,減少了在每個(gè)時(shí)鐘周期內(nèi)必須完成的工作量,進(jìn)而允許使用較高的時(shí)鐘頻率,,且具有分開(kāi)的指令和數(shù)據(jù)存儲(chǔ)器,,減少了沖突的發(fā)生,每條指令的平均周期數(shù)明顯減少,。

8.3,、 三級(jí)流水線運(yùn)行情況分析

          三級(jí)流水線在處理簡(jiǎn)單的寄存器操作指令時(shí),吞吐率為平均每個(gè)時(shí)鐘周期一條指令,;但是在存在存儲(chǔ)器訪問(wèn)指令,、跳轉(zhuǎn)指令的情況下會(huì)出現(xiàn)流水線阻斷情況,導(dǎo)致流水線的性能下降,。圖1給出了流水線的最佳運(yùn)行情況,,圖中的MOV、ADD,、SUB指令為單周期指令,。從T1開(kāi)始,用3個(gè)時(shí)鐘周期執(zhí)行了3條指令,,指令平均周期數(shù)(CPI)等于1個(gè)時(shí)鐘周期,。

                                                       

流水線中阻斷現(xiàn)象也十分普遍,,下面就各種阻斷情況下的流水線性能進(jìn)行詳細(xì)分析,。

帶有存儲(chǔ)器訪問(wèn)指令的流水線

           對(duì)存儲(chǔ)器的訪問(wèn)指令LDR就是非單周期指令,如圖2所示,。這類指令在執(zhí)行階段,,首先要進(jìn)行存儲(chǔ)器的地址計(jì)算,占用控制信號(hào)線,,而譯碼的過(guò)程同樣需要占用控制信號(hào)線,,所以下一條指令(第一個(gè)SUB)的譯碼被阻斷,并且由于LDR訪問(wèn)存儲(chǔ)器和回寫(xiě)寄存器的過(guò)程中

          需要繼續(xù)占用執(zhí)行單元,,所以下一條(第一個(gè) SUB)的執(zhí)行也被阻斷,。由于采用馮·諾伊曼體系結(jié)構(gòu),不能夠同時(shí)訪問(wèn)數(shù)據(jù)存儲(chǔ)器和指令存儲(chǔ)器,,當(dāng)LDR處于訪存周期的過(guò)程中時(shí),,MOV指令的取指被阻斷。因此處理器用8個(gè)時(shí)鐘周期執(zhí)行了6條指令,,指令平均周期數(shù)(CPI)=1.3個(gè)時(shí)鐘周期,。

                                       http://pubimage.360doc.com/wz/default.gif

帶有分支指令的流水線

          當(dāng)指令序列中含有具有分支功能的指令(如BL等)時(shí),,流水線也會(huì)被阻斷,如圖3所示,。分支指令在執(zhí)行時(shí),,其后第1條指令被譯碼,其后第2條指令進(jìn)行取指,,但是這兩步操作的指令并不被執(zhí)行,。因?yàn)榉种е噶顖?zhí)行完畢后,程序應(yīng)該轉(zhuǎn)到跳轉(zhuǎn)的目標(biāo)地址處執(zhí)行,,因此在流水線上需要丟棄這兩條指令,,同時(shí)程序計(jì)數(shù)器就會(huì)轉(zhuǎn)移到新的位置接著進(jìn)行取指、譯碼和執(zhí)行,。此外還有一些特殊的轉(zhuǎn)移指令需要在跳轉(zhuǎn)完成的同時(shí)進(jìn)行寫(xiě)鏈接寄存器,、程序計(jì)數(shù)寄存器,如BL執(zhí)行過(guò)程中包括兩個(gè)附加操作——寫(xiě)鏈接寄存器和調(diào)整程序指針,。這兩個(gè)操作仍然占用執(zhí)行單元,,這時(shí)處于譯碼和取指的流水線被阻斷了。

                                        http://pubimage.360doc.com/wz/default.gif

中斷流水線

           處理器中斷的發(fā)生具有不確定性,,與當(dāng)前所執(zhí)行的指令沒(méi)有任何關(guān)系,。在中斷發(fā)時(shí),處理器總是會(huì)執(zhí)行完當(dāng)前正被執(zhí)行的指令,,然后去響應(yīng)中斷,。如圖4所示,在 Ox90000處的指令A(yù)DD執(zhí)行期間IRQ中斷發(fā)生,,這時(shí)要等待ADD指令執(zhí)行完畢,,IRQ才獲得執(zhí)行單元,處理器開(kāi)始處理IRQ中斷,,保存程序返回地址并調(diào)整程序指針指向Oxl8內(nèi)存單元,。在Oxl8處有IRO中斷向量(也就是跳向IRQ中斷服務(wù)的指令),接下來(lái)執(zhí)行跳轉(zhuǎn)指令轉(zhuǎn)向中斷服務(wù)程序,,流水線又被阻斷,,執(zhí)行0x18處指令的過(guò)程同帶有分支指令的流水線。

                                        http://pubimage.360doc.com/wz/default.gif

8.4,、 五級(jí)流水線運(yùn)行分析

           五級(jí)流水線技術(shù)在多種RISC處理器中被廣泛使用,,被認(rèn)為是經(jīng)典的處理器設(shè)計(jì)方式。五級(jí)流水線中的存儲(chǔ)器訪問(wèn)部件(訪存)和寄存器回寫(xiě)部件,,解決了三級(jí)流水線中存儲(chǔ)器訪問(wèn)指令在指令執(zhí)行階段的延遲問(wèn)題,。圖5為五級(jí)流水線的運(yùn)行情況(五級(jí)流水線也存在阻斷)。

                                                    

 

五級(jí)流水線互鎖分析

           五級(jí)流水線只存在一種互鎖,,即寄存器沖突,。讀寄存器是在譯碼階段,,寫(xiě)寄存器是在回寫(xiě)階段,。如果當(dāng)前指令(A)的目的操作數(shù)寄存器和下一條指令(B)的源操作數(shù)寄存器一致,,B指令就需要等A回寫(xiě)之后才能譯碼,。這就是五級(jí)流水線中的寄存器沖突。如圖6所示,,LDR指令寫(xiě)R9是在回寫(xiě)階段,,而MOV中需要用到的 R9正是LDR在回寫(xiě)階段將會(huì)重新寫(xiě)入的寄存器值,MOV譯碼需要等待,,直到LDR指令的寄存器回寫(xiě)操作完成,。(注:現(xiàn)在處理器設(shè)計(jì)中,可以通過(guò)寄存器旁路技術(shù)對(duì)流水線進(jìn)行優(yōu)化,,解決流水線的寄存器沖突問(wèn)題,。) 

                                                      http://pubimage.360doc.com/wz/default.gif

           雖然流水線互鎖會(huì)增加代碼執(zhí)行時(shí)間,但是為初期的設(shè)計(jì)者提供了巨大的方便,,可以不必考慮使用的寄存器會(huì)不會(huì)造成沖突,;而且編譯器以及匯編程序員可以通過(guò)重新設(shè)計(jì)代碼的順序或者其他方法來(lái)減少互鎖的數(shù)量。另外分支指令和中斷的發(fā)生仍然會(huì)阻斷五級(jí)流水線,。

五級(jí)流水線優(yōu)

采用重新設(shè)計(jì)代碼順序在很多情況下可以很好地減少流水線的阻塞,,使流水線的運(yùn)行流暢。下面詳細(xì)分析代碼優(yōu)化對(duì)流水線的優(yōu)化和效率的提高,。

考慮到通過(guò)減少流水線的沖突可以提高流水線的執(zhí)行效率,,而流水線的沖突主要來(lái)自寄存器沖突和分支指令,因此對(duì)代碼作如下兩方面調(diào)整

  • 將兩個(gè)循環(huán)合并成一個(gè)循環(huán)能夠充分減少循環(huán)跳轉(zhuǎn)的次數(shù),,減少跳轉(zhuǎn)帶來(lái)的流水線停滯,;
  • 調(diào)整代碼的順序,將帶有與臨近指令不相關(guān)的寄存器插到帶有相關(guān)寄存器的指令之間,,能夠充分地避免寄存器沖突導(dǎo)致的流水線阻塞,。 

 流水線的優(yōu)化問(wèn)題主要應(yīng)從兩方面考慮:

①通過(guò)合并循環(huán)等方式減少分支指令的個(gè)數(shù),,從而減少流水線的浪費(fèi),;

②通過(guò)交換指令的順序,避免寄存器沖突造成的流水線停滯,。

MIPS體系(龍芯)

1,、歷史

             MIPS是世界上很流行的一種RISC處理器。MIPS的意思是“無(wú)內(nèi)部互鎖流水級(jí)的微處理器”(Microprocessor without interlocked pipelined stages),,其機(jī)制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問(wèn)題,。它最早是在80年代初期由斯坦福(Stanford)大學(xué)Hennessy教授領(lǐng)導(dǎo)的研究小組研制出來(lái)的。MIPS公司的R系列就是在此基礎(chǔ)上開(kāi)發(fā)的RISC工業(yè)產(chǎn)品的微處理器,。這些系列產(chǎn)品為很多計(jì)算機(jī)公司采用構(gòu)成各種工作站和計(jì)算機(jī)系統(tǒng),。 MIPS是出現(xiàn)最早的商業(yè)RISC架構(gòu)芯片之一,,新的架構(gòu)集成了所有原來(lái)MIPS指令集,并增加了許多更強(qiáng)大的功能,。

           1999年,,MIPS公司發(fā)布MIPS32和MIPS64架構(gòu)標(biāo)準(zhǔn),為未來(lái)MIPS處理器的開(kāi)發(fā)奠定了基礎(chǔ),。新的架構(gòu)集成了所有原來(lái)MIPS指令集,,并且增加了許多更強(qiáng)大的功能。MIPS公司陸續(xù)開(kāi)發(fā)了高性能,、低功耗的32位處理器內(nèi)核(core)MIPS324Kc與高性能64位處理器內(nèi)核MIPS64 5Kc,。2000年,MIPS公司發(fā)布了針對(duì)MIPS32 4Kc的版本以及64位MIPS 64 20Kc處理器內(nèi)核,。

 

2,、MIPS指令集

所有的指令長(zhǎng)度都是32位

指令操作必須適合流水線

所以需要在軟件層面盡量避免內(nèi)部的互鎖

         https://blog.csdn.net/qq_41191281/article/details/85933985

3、結(jié)構(gòu)

MIPS采用馮諾依曼結(jié)構(gòu)

 

ARM與MIPS對(duì)比

流水線結(jié)構(gòu)

MIPS 是最簡(jiǎn)單的體系結(jié)構(gòu)之一,,所以使大學(xué)喜歡選擇 MIPS 體系結(jié)構(gòu)來(lái)介紹計(jì)算體系結(jié)構(gòu)課程,。

ARM:barrel shifter

        shifter是兩面性的,一方面它可以提高數(shù)學(xué)邏輯運(yùn)算速度,,另一方面它也增加了硬件的復(fù)雜性,。所以和可以完成同樣功能的adder/shift register相比,效率更高,,但是也占用更多的芯片面積,。

        MIPS:"branch delay slot" and "load delay slot"

       MIPS使用編譯器來(lái)解決上面的兩個(gè)問(wèn)題。因?yàn)镸IPS最初的設(shè)計(jì)思想就是使用簡(jiǎn)單的RISC硬體,,然后靠編譯器及其他軟體技術(shù),,來(lái)達(dá)成RISC的完整概念

 

指令結(jié)構(gòu)

MIPS有32位和64位架構(gòu),,ARM只有32位架構(gòu),。ARM11 局部64位

MIPS是開(kāi)放式的架構(gòu), 用戶可以在開(kāi)發(fā)的內(nèi)核中加入自己的指令,

ARM has 4-bit condition code in every instruction

      ARM 在這一點(diǎn)很像x86,。MIPS在MIPS IV也加入"conditional move"指令,,來(lái)提高pipeline的效率。

在節(jié)省代碼空間方面,,MIPS16 很類似ARM Thumb

寄存器

由于MIPS內(nèi)核中有32個(gè)寄存器(Register),,而ARM只有16個(gè),這種結(jié)構(gòu)設(shè)計(jì)上的先天優(yōu)勢(shì),,決定了在同等性能表現(xiàn)下,,MIPS的芯片面積和功耗會(huì)更小。

ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制

MIPS也有cp0 0-30,使用mfc0, mtc0 指令控制,。

地址空間

MIPS 起始地址是0xbfc00000, 會(huì)有4Mbyte的大小限制,,但一般MIPS芯片都會(huì)采取一些方法解決這個(gè)問(wèn)題,。

      ARM沒(méi)有這種問(wèn)題。

      MIPS24K 起始地址改到了0xbf000000,現(xiàn)在有16Mbyte的空間了,。

應(yīng)用

ARM 由于功耗小,,普遍用在在手機(jī)/PDA等便攜式消費(fèi)電子領(lǐng)域;

MIPS 在住宅網(wǎng)關(guān)、線纜調(diào)制解調(diào)器,、線纜機(jī)頂盒等,由于MIPS 多核的發(fā)展,,現(xiàn)在大型網(wǎng)關(guān)設(shè)備也多用它。

ARM 采用硬核授權(quán);MIPS 采用軟核授權(quán),,用戶可以自己配置,,做自己的產(chǎn)品。

未來(lái)發(fā)展

ARM的下一代走向多內(nèi)核結(jié)構(gòu),,而MIPS公司的下一代核心則轉(zhuǎn)向硬件多線程功能(multithreading)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多