新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 學(xué)習(xí)方法與實(shí)踐 > ARM體系結(jié)構(gòu)的發(fā)展

ARM體系結(jié)構(gòu)的發(fā)展

作者: 時(shí)間:2008-02-25 來(lái)源: 收藏

處理器的體系結(jié)構(gòu)定義了指令集(ISA)和基于這一體系結(jié)構(gòu)下處理器的程序員模型。盡管每個(gè)處理器性能不同,所面向的應(yīng)用不同,每個(gè)處理器的實(shí)現(xiàn)都要遵循這一體系結(jié)構(gòu)。ARM體系結(jié)構(gòu)為嵌入系統(tǒng)發(fā)展商提供很高的系統(tǒng)性能,同時(shí)保持優(yōu)異的功耗和面積效率。

ARM體系結(jié)構(gòu)的發(fā)展

ARM體系結(jié)構(gòu)為滿足ARM合作者以及設(shè)計(jì)領(lǐng)域的一般需求正穩(wěn)步發(fā)展。每一次ARM體系結(jié)構(gòu)的重大修改,都會(huì)添加極為關(guān)鍵的技術(shù)。在體系結(jié)構(gòu)作重大修改的期間,會(huì)添加新的性能作為體系結(jié)構(gòu)的變體。下面的名字表明了系統(tǒng)結(jié)構(gòu)上的提升,后面附加的關(guān)鍵字表明了體系結(jié)構(gòu)的變體。

V3結(jié)構(gòu) 32位地址。

T ? Thumb狀態(tài):16位指令。
M ? 長(zhǎng)乘法支持(32*32=>64或者32*32+64=>64)。這一性質(zhì)已經(jīng)變成V4結(jié)構(gòu)的標(biāo)準(zhǔn)配置。

V4結(jié)構(gòu) 加入了半字存儲(chǔ)操作。

D ? 對(duì)調(diào)試的支持(Debug)
I ? 嵌入的ICE(In Circuit Emulation)

屬于V4體系結(jié)構(gòu)的處理器(核)有ARM7,ARM7100(ARM7核的處理器),ARM7500(ARM7核的處理器)。 屬于V4T(支持Thumb指令)體系結(jié)構(gòu)的處理器(核)有 ARM7TDMI,ARM7TDMI-S(ARM7TDMI可綜合版本),ARM710T(ARM7TDMI核的處理器),ARM720T (ARM7TDMI核的處理器),ARM740T(ARM7TDMI核的處理器),ARM9TDMI,ARM910T(ARM9TDMI核的處理器),ARM920T(ARM9TDMI核的處理器),ARM940T(ARM9TDMI核的處理器),StrongARM(Intel公司的產(chǎn)品)。

V5結(jié)構(gòu) 提升了ARM和Thumb指令的交互工作能力。

E ? DSP指令支持。
J ? Java指令支持。

屬于V5T(支持Thumb指令)體系結(jié)構(gòu)的處理器(核)有ARM10TDMI,ARM1020T (ARM10TDMI核處理器)。屬于V5TE(支持Thumb,DSP指令)體系結(jié)構(gòu)的處理器(核)有ARM9E,ARM9E-S (ARM9E可綜合版本),ARM946(ARM9E核的處理器),ARM966(ARM9E核的處理器),ARM10E,ARM1020E(ARM10E核處理器),ARM1022E(ARM10E核的處理器), Xscale (Intel公司產(chǎn)品)。屬于V5TEJ(支持Thumb,DSP指令,Java指令)體系結(jié)構(gòu)的處理器(核)有ARM9EJ,ARM9EJ-S(ARM9EJ可綜合版本),ARM926EJ(ARM9EJ核的處理器),ARM10EJ。

V6結(jié)構(gòu) 增加了媒體指令

屬于V6體系結(jié)構(gòu)的處理器核有ARM11。ARM體系結(jié)構(gòu)中有四種特殊指令集:Thumb指令(T),DSP指令(E),Java指令(J),Media指令,V6體系結(jié)構(gòu)包含全部四種特殊指令集。為滿足向后兼容,ARMv6也包括了ARMv5的存儲(chǔ)器管理和例外處理。這將使眾多的第三方發(fā)展商能夠利用現(xiàn)有的成果,支持軟件和設(shè)計(jì)的復(fù)用。新的體系結(jié)構(gòu)并不是想取代現(xiàn)存的體系結(jié)構(gòu),使它們變得多余。新的CPU核和衍生產(chǎn)品將建立在這些結(jié)構(gòu)之上,同時(shí)不斷與制造工藝保持同步。例如基于V4T體系結(jié)構(gòu)的ARM7TDMI核還在廣泛被新產(chǎn)品所使用。
 

新體系結(jié)構(gòu)的發(fā)展動(dòng)力

下一代體系結(jié)構(gòu)的發(fā)展是由不斷涌現(xiàn)的新產(chǎn)品和變化的市場(chǎng)來(lái)推動(dòng)的。關(guān)鍵的設(shè)計(jì)約束是顯而易見的,功能,性能,速度,功耗,面積和成本必須與每一種應(yīng)用的需求相平衡。保證領(lǐng)先的性能/功耗(MIPS/Watt)在過(guò)去是ARM成功的基石,在將來(lái)的應(yīng)用中它也是一個(gè)重要衡量標(biāo)準(zhǔn)。隨著計(jì)算和通訊持續(xù)覆蓋許多消費(fèi)領(lǐng)域,功能也變得愈來(lái)愈復(fù)雜,消費(fèi)者期望有高級(jí)的用戶界面,多媒體以及增強(qiáng)的產(chǎn)品性能。ARMv6將更有效的對(duì)這些新性質(zhì)和技術(shù)進(jìn)行有效的支持。驅(qū)動(dòng)RMv6體系結(jié)構(gòu)發(fā)展的市場(chǎng)主要有無(wú)線,網(wǎng)絡(luò),自動(dòng)化和消費(fèi)娛樂(lè)市場(chǎng)。ARM在過(guò)去與體系結(jié)構(gòu)的受權(quán)者和主要合作者像Intel,Microsoft,Symbian和TI共同定義了ARMv6體系結(jié)構(gòu)的需求。

ARMv6體系結(jié)構(gòu)的提升

發(fā)展ARMv6體系結(jié)構(gòu)的過(guò)程中,精力主要集中在五個(gè)方面:

存儲(chǔ)器管理

存儲(chǔ)器管理方式嚴(yán)重影響系統(tǒng)設(shè)計(jì)和性能。存儲(chǔ)器結(jié)構(gòu)的提升將大大提高處理器的整體性能-尤其是對(duì)于面向平臺(tái)的應(yīng)用。ARMv6體系結(jié)構(gòu)可以提高取指(數(shù)據(jù))效能。處理器將花費(fèi)更少的時(shí)間在等待指令和緩存未命中數(shù)據(jù)重裝載上面。存儲(chǔ)器管理的提升將使系統(tǒng)性能提升30%。而且,存儲(chǔ)器管理的提升也會(huì)提高總線的使用效率。更少的總線活動(dòng)意味著功耗方面的節(jié)省。

多處理器

應(yīng)用覆蓋驅(qū)動(dòng)系統(tǒng)實(shí)現(xiàn)向多處理器方向發(fā)展。無(wú)線平臺(tái),尤其是2。5G和3G,都是典型的需要整合多個(gè)ARM處理器或ARM與DSP的應(yīng)用。多處理器材通過(guò)共享內(nèi)存來(lái)有效的共享數(shù)據(jù)。新的ARMv6在數(shù)據(jù)共享和同步方面的能力將使它更容易實(shí)現(xiàn)多處理器,以及提高它們的性能。新的指令使能復(fù)雜的同步策略,更大的提升了系統(tǒng)效能。

多媒體支持

單指令流多數(shù)據(jù)流(SIMD)能力使得軟件更有效地完成高性能的媒體應(yīng)用像聲音和圖像編碼器。ARMv6指令集合中加入了超過(guò)60個(gè)SIMD指令。加入SIMD指令將使性能提高2倍到4倍。SIMD能力使發(fā)展商可以完成高端的像圖象編碼 ,語(yǔ)音識(shí)別,3D圖象,尤其是與下一代無(wú)線應(yīng)用相關(guān)的。

數(shù)據(jù)處理

數(shù)據(jù)的大小端問(wèn)題是指數(shù)據(jù)以何種方式在存儲(chǔ)器中被存儲(chǔ)和引用。隨著更多的SOC集成,單芯片不僅包含小端的OS環(huán)境和界面(像USB,PCI),也包含大端的數(shù)據(jù)(TCP/IP包,MPEG流)。ARMv6體系結(jié)構(gòu),支持混合。結(jié)果,數(shù)據(jù)處理問(wèn)題在ARMv6體系結(jié)構(gòu)中更為有效。未對(duì)齊數(shù)據(jù)是指數(shù)據(jù)未與自然邊界對(duì)齊。例如,在DSP應(yīng)用中有時(shí)需要將字?jǐn)?shù)據(jù)半字對(duì)齊。處理器更有效處理這種情形需要能夠裝載字到任何半字邊界。當(dāng)前版本的體系結(jié)構(gòu)需要大量指令處理未對(duì)齊數(shù)據(jù)。ARMv6兼容結(jié)構(gòu)處理未對(duì)齊數(shù)據(jù)更有效。對(duì)于嚴(yán)重依賴未對(duì)齊數(shù)據(jù)的DSP算法,ARMv6體系結(jié)構(gòu)將有性能的提高以及代碼數(shù)量的縮減。未對(duì)齊數(shù)據(jù)支持將使ARM處理器在仿真其它處理器像Motorola的68000 系列方面更有效。與ARMv5的實(shí)現(xiàn)像ARM10和Xscale,ARMv6是基于32位處理器。ARMv6 可以實(shí)現(xiàn)64位或64位以上的總線寬度。這使得總線等于甚至超過(guò)64位處理器,但功耗和面積卻比64位CPU要低。

例外(EXCEPTION)與中斷

對(duì)于實(shí)時(shí)系統(tǒng)來(lái)說(shuō),對(duì)于中斷的效率是要求嚴(yán)格的。像硬盤控制器,引擎管理應(yīng)用,這些應(yīng)用中如果中斷沒(méi)有及時(shí)得到響應(yīng),那后果將是嚴(yán)重的。更有效的處理中斷與例外也能提高系統(tǒng)整體表現(xiàn)。在降低系統(tǒng)時(shí)尤為重要。在ARMv6體系結(jié)構(gòu)中,新的指令被加入了指令集合來(lái)提升中斷與例外的實(shí)現(xiàn)。這些將有效提升特權(quán)模式下例外處理。

ARM11主要性能

ARM11是ARMv6體系結(jié)構(gòu)的第一個(gè)實(shí)現(xiàn),ARM11微結(jié)構(gòu)的設(shè)計(jì)目的是為了高性能,而實(shí)現(xiàn)這一目的流水線是關(guān)鍵。ARM11微結(jié)構(gòu)的流水線與以前的ARM核不同,它包含8級(jí)流水,使貫通率比以前的核提高40%。

單指令發(fā)射

ARM11微結(jié)構(gòu)的流水線是標(biāo)量的(SCALAR),即每次只發(fā)射一條指令(單發(fā)射)。有些流水線結(jié)構(gòu)可以同時(shí)發(fā)射多條指令,例如,可以同時(shí)向ALU和MAC流水線發(fā)射指令。理論上,多發(fā)射微結(jié)構(gòu)會(huì)有更高的效能,但實(shí)踐上,多發(fā)射微結(jié)構(gòu)無(wú)疑會(huì)增加前段指令譯碼級(jí)的復(fù)雜程度,因?yàn)樾枰嗟倪壿媮?lái)處理指令相關(guān)(DEPENDENCY),這將使處理器的面積和功耗變得更大。 

 

分支預(yù)測(cè)

分支指令通常是條件指令,它們?cè)谔叫轮噶钋靶枰M(jìn)行一些條件的測(cè)試。由于條件指令譯碼需要的條件碼要三四個(gè)周期后才可能有結(jié)果,分支有可能引起流水線的延遲。但分支預(yù)測(cè)將會(huì)有助于避免這種延遲。ARM11微結(jié)構(gòu)使用兩種技術(shù)來(lái)預(yù)測(cè)分支。首先,動(dòng)態(tài)的預(yù)測(cè)器使用歷史記錄來(lái)判斷分支是最頻繁發(fā)生,還是最不頻繁發(fā)生。動(dòng)態(tài)預(yù)測(cè)器是一個(gè)64個(gè)分錄,4狀態(tài)(StronglyTaken,WeaklyTaken,Strongly notTaken,Weakly notTaken)的分支目標(biāo)地址緩存(BTAC)。表格大小足夠保持最近的分支情況,分支預(yù)測(cè)就基于以前的結(jié)果。其次,如果動(dòng)態(tài)的分支預(yù)測(cè)器沒(méi)有發(fā)現(xiàn)記錄,就使用靜態(tài)的分支算法。很簡(jiǎn)單,靜態(tài)預(yù)測(cè)檢查分支是向前跳轉(zhuǎn)還是向后跳轉(zhuǎn)。假如是向后跳轉(zhuǎn),就假定它是一個(gè)循環(huán),預(yù)測(cè)該分支發(fā)生,假如是向前跳轉(zhuǎn),就預(yù)測(cè)該分支不發(fā)生。通過(guò)使用動(dòng)態(tài)和靜態(tài)的分支預(yù)測(cè),ARM11微結(jié)構(gòu)中分支指令中的85%被正確預(yù)測(cè)。

存儲(chǔ)器訪問(wèn)

ARM11微結(jié)構(gòu)存儲(chǔ)器系統(tǒng)的提高之一就是非阻塞(NON-BLOCKING)和缺失命中 (HIT-UNDER-MISS)操作。當(dāng)指令取的數(shù)據(jù)不在緩存中時(shí),一般處理器的流水線會(huì)停止下來(lái),但ARM11則進(jìn)行非阻塞操作,緩存開始讀取缺失的數(shù)據(jù),而流水線可以繼續(xù)執(zhí)行下一指令(NON-BLOCKING),并且允許該指令讀取緩存中的數(shù)據(jù)(HIT-UNDER-MISS )。

并行流水線

盡管流水線是單發(fā)射的,在流水線的后端還是使用了三個(gè)并行部件結(jié)構(gòu),ALU,MAC (乘加),LS(存?。S流水線是專門用于處理存取操作指令。把數(shù)據(jù)的存取操作與數(shù)據(jù)算術(shù)操作的藕合性分隔開來(lái)可以更有效的處理執(zhí)行指令。在流水線中包含LS部件的ARM11微結(jié)構(gòu)中,ALU或者M(jìn)AC指令不會(huì)由于LS指令的等待而停止下來(lái)。這也使得編譯工具有更大的自由度通過(guò)重新安排代碼來(lái)提高性能。為使并行流水線獲得更大的效能,ARM11微結(jié)構(gòu)使用了亂序完成(OUT-OF-ORDER COMPLETION)。

64位數(shù)據(jù)路徑

對(duì)于目前的許多應(yīng)用來(lái)說(shuō),由于成本與功耗的問(wèn)題,真64位處理器并不十分必要。ARM11 微結(jié)構(gòu)在局部合理使用64位結(jié)構(gòu),通過(guò)32位的成本來(lái)實(shí)現(xiàn)64位的性能。ARM11微結(jié)構(gòu)在處理器整數(shù)部件與緩存之間,整數(shù)部件與協(xié)處理器之間使用了64位數(shù)據(jù)總線。64位的路徑可以在一個(gè)周期內(nèi)從緩存中讀取兩條指令,允許每周期傳送兩個(gè)ARM寄存器的數(shù)據(jù)。這使得許多數(shù)據(jù)移動(dòng)操作與數(shù)據(jù)加工操作變得更為高性能。

浮點(diǎn)處理

ARM11微結(jié)構(gòu)支持浮點(diǎn)處理。ARM11微結(jié)構(gòu)產(chǎn)品線將浮點(diǎn)處理單元作為一個(gè)選項(xiàng)。這可以方便發(fā)展商根據(jù)需求需用合適的產(chǎn)品。


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉