加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 16.2  ARMv6增加的系統(tǒng)支持
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

ARM體系結(jié)構(gòu)的發(fā)展之:ARMv6增加的系統(tǒng)支持

2013/09/30
1
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

16.2??ARMv6增加的系統(tǒng)支持

為了滿足目前無(wú)線網(wǎng)絡(luò)、汽車(chē)電子和消費(fèi)類電子產(chǎn)品不斷增長(zhǎng)的市場(chǎng)需要,ARM公司在ARMv6中引入新的技術(shù)和結(jié)構(gòu)組成,包括增強(qiáng)的DSP支持和對(duì)多處理器環(huán)境的支持。

16.2.1??存儲(chǔ)管理

由于在ARMv6體系結(jié)構(gòu)中引入新的存儲(chǔ)管理機(jī)制,處理器的整體性能得到提高。在新的體系結(jié)構(gòu)中,平均指令預(yù)取和數(shù)據(jù)等待時(shí)間大幅度減少,存取過(guò)程中Cache命中率顯著提高。由于存儲(chǔ)機(jī)制的改善,系統(tǒng)整體性能的提高達(dá)到30%。

另外,存儲(chǔ)系統(tǒng)的改善使系統(tǒng)總線(BUS)使用更加合理,從而減少了系統(tǒng)總線使用頻度,降低了系統(tǒng)功耗。

圖16.2顯示了ARMv6體系結(jié)構(gòu)存儲(chǔ)系統(tǒng)示意圖。

圖16.2??ARMv6存儲(chǔ)系統(tǒng)示意圖

1.ARMv6?L1?Cache

ARMv6采用“分層”的存儲(chǔ)管理,存儲(chǔ)層次的最頂層在處理器內(nèi)核中。該存儲(chǔ)器被稱為寄存器文件(register?file)。這些寄存器被集成在處理器內(nèi)核中,在系統(tǒng)中提供最快的存儲(chǔ)訪問(wèn)。

ARMv6體系結(jié)構(gòu)處理器使用物理索引Cache(Physically?tagged?caches),即地址轉(zhuǎn)換在CPU和Cache之間,這樣就減少了CPU在運(yùn)行大的操作系統(tǒng)時(shí)由于上下文切換而帶來(lái)的系統(tǒng)開(kāi)銷。使用這種物理Cache,可以使CPU的整體性能提高近20%。

為了減少在內(nèi)容轉(zhuǎn)換時(shí),刷新Cache的CPU開(kāi)銷,ARMv6將L1?Cache構(gòu)建為使用物理尋址的存儲(chǔ)系統(tǒng)。系統(tǒng)中設(shè)有TCM作為物理可尋址的快速訪問(wèn)內(nèi)存,存在于存儲(chǔ)系統(tǒng)中,作為Cache的補(bǔ)充。無(wú)論Cache還是TCM,都可以配置為指令和數(shù)據(jù)分離的Harvard架構(gòu)或指令和數(shù)據(jù)統(tǒng)一的馮·諾依曼架構(gòu)。另外,L1?DMA子系統(tǒng)可以使數(shù)據(jù)在沒(méi)有CPU參與的情況下,直接和TCM進(jìn)行數(shù)據(jù)傳輸。

2.頁(yè)表格式

在ARMv6體系結(jié)構(gòu)中,頁(yè)表格式也發(fā)生了變化。圖16.3顯示了新的一級(jí)頁(yè)表格式。

圖16.3??ARMv6頁(yè)表格式

協(xié)處理器CP15中的XP-bit可以指定是否使用這種新的頁(yè)表格式。如果不設(shè)置該位,則系統(tǒng)繼續(xù)使用ARMv5架構(gòu)的頁(yè)表格式。

從圖16.3可以看出,新的頁(yè)表格式增加了以下特性:

·??XN:從不執(zhí)行位(execute?never?bit)。

·??nG:非全局地址映射位(not?Global?bit?for?address?matching)。

應(yīng)用程序空間指示ASID(Application?Space?Identifier)是ARMv6體系中增加的又一關(guān)鍵特性。當(dāng)nG位置位時(shí),地址轉(zhuǎn)換使用虛擬地址和ASID相結(jié)合的方法以減少上下文切換的時(shí)間。同時(shí),應(yīng)用程序空間指示提供了一種任務(wù)可知調(diào)試方法(task-aware?debugging)。

有關(guān)ARMv6存儲(chǔ)系統(tǒng)的詳細(xì)內(nèi)容請(qǐng)參閱ARM相關(guān)文檔。

3.增加的頁(yè)表基地址寄存器

為了提高地址轉(zhuǎn)換的處理速度,ARMv6體系結(jié)構(gòu)中增加了一個(gè)新的頁(yè)表基地址寄存器,以存儲(chǔ)二級(jí)頁(yè)表的基地址。CP15同時(shí)支持TTBR0和TTBR1。專門(mén)的控制寄存器用來(lái)保存用戶設(shè)定的整數(shù)N,N的取值范圍為0~7。當(dāng)N的值不等于0時(shí),0~232-N的地址空間使用TTBR0,而其他空間使用TTBR1進(jìn)行傳輸控制。一級(jí)頁(yè)表根據(jù)N取值的不同,占有128bytes~16KB存儲(chǔ)空間。

16.2.2??多處理單元支持

由于片上系統(tǒng)Soc結(jié)構(gòu)的復(fù)雜化,ARM內(nèi)核現(xiàn)在經(jīng)常被用于有多個(gè)處理單元的設(shè)備,這些處理單元競(jìng)爭(zhēng)使用系統(tǒng)的共享資源。為了滿足多處理單元任務(wù)間同步的需要,Load/Store互斥指令引入到新的ARMv6體系結(jié)構(gòu)中來(lái)。新指令包括:

·??LDREX:加載互斥指令。

·??STREX:存儲(chǔ)互斥指令。

LDREX指令從存儲(chǔ)器中裝載一個(gè)值到寄存器,在處理這個(gè)數(shù)據(jù)時(shí),不會(huì)有任何其他因素改變?cè)撝?。STREX指令存儲(chǔ)一個(gè)值到寄存器,并返回一個(gè)指示值。

16.2.3??異常處理和中斷

ARMv6體系結(jié)構(gòu)提供了對(duì)向量中斷(vectored?Interrupt)的支持。向量中斷控制器(VIC,Vectored?Interrupt?Controller)由CP15的寄存器1中的VE?–?bit來(lái)控制。當(dāng)向量中斷控制器使能時(shí),該控制器可以向CPU提供發(fā)生中斷的向量。

另外,在ARMv6的體系結(jié)構(gòu)中,程序狀態(tài)寄存器CPSR擴(kuò)展了A位來(lái)控制Abort異常。這種機(jī)制類似于程序狀態(tài)寄存器CPSR中I和F?bit對(duì)IRQ和FIQ的控制。

操作系統(tǒng)通常在堆棧中保存一次中斷或異常處理的返回狀態(tài)。ARMv6增加了新的指令來(lái)提高這類操作的效率。這種操作在中斷/調(diào)度程序驅(qū)動(dòng)系統(tǒng)中,出現(xiàn)的頻率是很高的。這些新增加的指令包括:

·??SRS:保存返回狀態(tài)在特定模式的堆棧中。

·??RFE:異常返回。

·??CPSID/CPSIE:改變處理器狀態(tài),開(kāi)中斷或關(guān)中斷。

16.2.4??混和大小端支持

AMRv6體系結(jié)構(gòu)中增加了同時(shí)處理大端和小端數(shù)據(jù)的能力。新增加了指令SETEND來(lái)設(shè)置一段代碼處理數(shù)據(jù)的字節(jié)排列方式,另外還增加了一些單獨(dú)的處理指令來(lái)提高在混和大小端環(huán)境下的處理效率。

指令SETEND的標(biāo)準(zhǔn)格式如下:

SETEND<endian_specifier>

該指令根據(jù)參數(shù)<endian_specifier>的值來(lái)改變默認(rèn)的數(shù)據(jù)端格式。

SETEND指令的設(shè)置直接和程序狀態(tài)寄存器CPSR中新增加的E位相對(duì)應(yīng)。E位對(duì)數(shù)據(jù)大小端的控制如圖16.4所示。

16.2.5??對(duì)媒體處理的支持

為了進(jìn)一步提高體系結(jié)構(gòu)的DSP和媒體處理能力,單指令流多數(shù)據(jù)流(SIMD)技術(shù)被引入到ARMv6體系結(jié)構(gòu)中。這種技術(shù)對(duì)于處理大量復(fù)雜運(yùn)算和并行地存儲(chǔ)大流量數(shù)據(jù)十分有效。

圖16.4??E位對(duì)數(shù)據(jù)大小端的控制

ARMv6對(duì)SIMD的實(shí)現(xiàn)簡(jiǎn)單而又不失其靈活性。它將現(xiàn)存的32位ARM數(shù)據(jù)通道劃分成4個(gè)8位或2個(gè)16位的片段,為SIMD操作增加了獨(dú)立的數(shù)據(jù)總線。這種實(shí)現(xiàn)方法硬件代價(jià)小,遵循了ARM低功耗、高計(jì)算效率的設(shè)計(jì)原則。

為了支持SIMD算法,ARMv6中引入一些新的指令,有關(guān)這些指令的詳細(xì)信息請(qǐng)參閱ARM的相關(guān)文檔。

Arm

Arm

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,主要為國(guó)際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商,主要為國(guó)際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠(yuǎn)見(jiàn)(www.farsight.com.cn)是國(guó)內(nèi)領(lǐng)先嵌入師培訓(xùn)機(jī)構(gòu),2004年注冊(cè)于中國(guó)北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營(yíng)分公司。華清遠(yuǎn)見(jiàn)除提供嵌入式相關(guān)的長(zhǎng)期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負(fù)責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實(shí)驗(yàn)平臺(tái)的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開(kāi)出版70余本嵌入式/移動(dòng)開(kāi)發(fā)/物聯(lián)網(wǎng)相關(guān)圖書(shū)。企業(yè)理念:專業(yè)始于專注 卓識(shí)源于遠(yuǎn)見(jiàn)。企業(yè)價(jià)值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。