新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM體系結(jié)構的發(fā)展之:ARMv6增加的系統(tǒng)支持

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

作者: 時間:2013-09-30 來源:網(wǎng)絡 收藏

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

為了滿足目前無線網(wǎng)絡、汽車電子和消費類電子產(chǎn)品不斷增長的市場需要,公司在v6中引入新的技術和結(jié)構組成,包括增強的DSP支持和對多處理器環(huán)境的支持。

本文引用地址:http://butianyuan.cn/article/257007.htm

16.2.1存儲管理

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

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

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

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

1.ARMv6

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

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

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

2.頁表格式

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

圖16.3ARMv6頁表格式

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

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

·XN:從不執(zhí)行位(executeneverbit)。

·nG:非全局地址映射位(notGlobalbitforaddressmatching)。

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

有關ARMv6存儲系統(tǒng)的詳細內(nèi)容請參閱ARM相關文檔。

3.增加的頁表基地址寄存器

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

16.2.2多處理單元支持

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

·LDREX:加載互斥指令。

·STREX:存儲互斥指令。

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

16.2.3異常處理和中斷

ARMv6體系結(jié)構提供了對向量中斷(vectoredInterrupt)的支持。向量中斷控制器(VIC,VectoredInterruptController)由CP15的寄存器1中的VE–bit來控制。當向量中斷控制器使能時,該控制器可以向CPU提供發(fā)生中斷的向量。

另外,在ARMv6的體系結(jié)構中,程序狀態(tài)寄存器CPSR擴展了A位來控制Abort異常。這種機制類似于程序狀態(tài)寄存器CPSR中I和Fbit對IRQ和FIQ的控制。

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

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

·RFE:異常返回。

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

16.2.4混和大小端支持

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

指令SETEND的標準格式如下:

SETENDendian_specifier>

該指令根據(jù)參數(shù)endian_specifier>的值來改變默認的數(shù)據(jù)端格式。

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

16.2.5對媒體處理的支持

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

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

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

為了支持SIMD算法,ARMv6中引入一些新的指令,有關這些指令的詳細信息請參閱ARM的相關文檔。



評論


相關推薦

技術專區(qū)

關閉