認識ARM體系結構的發(fā)展
多處理器
應用覆蓋驅動(dòng)系統實(shí)現向多處理器方向發(fā)展。無(wú)線(xiàn)平臺,尤其是2。5G和3G,都是典型的需要整合多個(gè)ARM處理器或ARM與DSP的應用。多處理器材通過(guò)共享內存來(lái)有效的共享數據。新的armv6在數據共享和同步方面的能力將使它更容易實(shí)現多處理器,以及提高它們的性能。新的指令使能復雜的同步策略,更大的提升了系統效能。
多媒體支持
單指令流多數據流(SIMD)能力使得軟件更有效地完成高性能的媒體應用像聲音和圖像編碼器。armv6指令集合中加入了超過(guò)60個(gè)SIMD指令。加入SIMD指令將使性能提高2倍到4倍。SIMD能力使發(fā)展商可以完成高端的像圖象編碼
,語(yǔ)音識別,3D圖象,尤其是與下一代無(wú)線(xiàn)應用相關(guān)的。
數據處理
數據的大小端問(wèn)題是指數據以何種方式在存儲器中被存儲和引用。
隨著(zhù)更多的SOC集成,單芯片不僅包含小端的OS環(huán)境和界面(像USB,PCI),也包含大端的數據(TCP/IP包,MPEG流)。ARMv6體系結構,支持混合。結果,數據處理問(wèn)題在armv6體系結構中更為有效。
未對齊數據是指數據未與自然邊界對齊。例如,在DSP應用中有時(shí)需要將字數據半字對齊。處理器更有效處理這種情形需要能夠裝載字到任何半字邊界。
當前版本的體系結構需要大量指令處理未對齊數據。ARMv6兼容結構處理未對齊數據更有效。對于嚴重依賴(lài)未對齊數據的DSP算法,ARMv6體系結構將有性能的提高以及代碼數量的縮減。未對齊數據支持將使ARM處理器在仿真其它處理器像Motorola的68000系列方面更有效。與ARMv5的實(shí)現像ARM10和Xscale,ARMv6是基于32位處理器。armv6可以實(shí)現64位或64位以上的總線(xiàn)寬度。這使得總線(xiàn)等于甚至超過(guò)64位處理器,但功耗和面積卻比64位CPU要低。
例外(EXCEPTION)與中斷
對于實(shí)時(shí)系統來(lái)說(shuō),對于中斷的效率是要求嚴格的。像硬盤(pán)控制器,引擎管理應用,這些應用中如果中斷沒(méi)有及時(shí)得到響應,那后果將是嚴重的。更有效的處理中斷與例外也能提高系統整體表現。在降低系統時(shí)尤為重要。在armv6體系結構中,新的指令被加入了指令集合來(lái)提升中斷與例外的實(shí)現。這些將有效提升特權模式下例外處理。
arm11主要性能
ARM11是ARMv6體系結構的第一個(gè)實(shí)現,ARM11微結構的設計目的是為了高性能,而實(shí)現這一目的流水線(xiàn)是關(guān)鍵。ARM11微結構的流水線(xiàn)與以前的arm核不同,它包含8級流水,使貫通率比以前的核提高40%。
單指令發(fā)射
arm11微結構的流水線(xiàn)是標量的(SCALAR),即每次只發(fā)射一條指令(單發(fā)射)。有些流水線(xiàn)結構可以同時(shí)發(fā)射多條指令,例如,可以同時(shí)向ALU和MAC流水線(xiàn)發(fā)射指令。
理論上,多發(fā)射微結構會(huì )有更高的效能,但實(shí)踐上,多發(fā)射微結構無(wú)疑會(huì )增加前段指令譯碼級的復雜程度,因為需要更多的邏輯來(lái)處理指令相關(guān)(DEPENDENCY),這將使處理器的面積和功耗變得更大。
分支預測
分支指令通常是條件指令,它們在跳到新指令前需要進(jìn)行一些條件的測試。由于條件指令譯碼需要的條件碼要三四個(gè)周期后才可能有結果,分支有可能引起流水線(xiàn)的延遲。
但分支預測將會(huì )有助于避免這種延遲。arm11微結構使用兩種技術(shù)來(lái)預測分支。首先,動(dòng)態(tài)的預測器使用歷史記錄來(lái)判斷分支是最頻繁發(fā)生,還是最不頻繁發(fā)生。動(dòng)態(tài)預測器是一個(gè)64個(gè)分錄,4狀態(tài)(StronglyTaken,WeaklyTaken,Strongly notTaken,Weakly notTaken)的分支目標地址緩存(BTAC)。表格大小足夠保持最近的分支情況,分支預測就基于以前的結果。其次,如果動(dòng)態(tài)的分支預測器沒(méi)有發(fā)現記錄,就使用靜態(tài)的分支算法。很簡(jiǎn)單,靜態(tài)預測檢查分支是向前跳轉還是向后跳轉。假如是向后跳轉,就假定它是一個(gè)循環(huán),預測該分支發(fā)生,假如是向前跳轉,就預測該分支不發(fā)生。
通過(guò)使用動(dòng)態(tài)和靜態(tài)的分支預測,arm11微結構中分支指令中的85%被正確預測。
存儲器訪(fǎng)問(wèn)ARM11微結構存儲器系統的提高之一就是非阻塞(NON-BLOCKING)和缺失命中(HIT-UNDER-MISS)操作。當指令取的數據不在緩存中時(shí),一般處理器的流水線(xiàn)會(huì )停止下來(lái),但arm11則進(jìn)行非阻塞操作,緩存開(kāi)始讀取缺失的數據,而流水線(xiàn)可以繼續執行下一指令(NON-BLOCKING),并且允許該指令讀取緩存中的數據(HIT-UNDER-MISS)。
并行流水線(xiàn)
盡管流水線(xiàn)是單發(fā)射的,在流水線(xiàn)的后端還是使用了三個(gè)并行部件結構,ALU,MAC(乘加),LS(存?。?。LS流水線(xiàn)是專(zhuān)門(mén)用于處理存取操作指令。把數據的存取操作與數據算術(shù)操作的藕合性分隔開(kāi)來(lái)可以更有效的處理執行指令。在流水線(xiàn)中包含LS部件的ARM11微結構中,ALU或者M(jìn)AC指令不會(huì )由于LS指令的等待而停止下來(lái)。這也使得編譯工具有更大的自由度通過(guò)重新安排代碼來(lái)提高性能。為使并行流水線(xiàn)獲得更大的效能,arm11微結構使用了亂序完成(OUT-OF-ORDER COMPLETION)。
64位數據路徑
對于目前的許多應用來(lái)說(shuō),由于成本與功耗的問(wèn)題,真64位處理器并不十分必要。ARM1 1微結構在局部合理使用64位結構,通過(guò)32位的成本來(lái)實(shí)現64位的性能。ARM11微結構在處理器整數部件與緩存之間,整數部件與協(xié)處理器之間使用了64位數據總線(xiàn)。64位的路徑可以在一個(gè)周期內從緩存中讀取兩條指令,允許每周期傳送兩個(gè)arm寄存器的數據。這使得許多數據移動(dòng)操作與數據加工操作變得更為高性能。
浮點(diǎn)處理
ARM11微結構支持浮點(diǎn)處理。arm11微結構產(chǎn)品線(xiàn)將浮點(diǎn)處理單元作為一個(gè)選項。這可以方便發(fā)展商根據需求需用合適的產(chǎn)品。
評論