ARM體系結構研究
隨著(zhù)電子消費品市場(chǎng)上,屏幕、觸屏越來(lái)越大,像素、幀數、分辨率越來(lái)越高,各種無(wú)線(xiàn)通信擴展雨后春筍般此起彼伏,處理器的處理能力越來(lái)越受到這些多媒體應用的考驗。在這樣的背景下,ARM芯片推出了自己的解決方案——NEON。
NEON技術(shù)是ARM公司2004年發(fā)布的媒體和信號處理技術(shù),可以加速多種類(lèi)型的多媒體應用,適用于手機和消費娛樂(lè )電子,可靈活地實(shí)現多種視頻編/解碼、三維圖像、語(yǔ)音處理、音頻解碼、圖像處理和基帶功能。該技術(shù)已經(jīng)應用在了Cortex-A系列的ARM處理器中,同時(shí)獲得了ARM和第三方工具提供商的廣泛支持,適用于高端多媒體設備。
NEON技術(shù)使用64/128位單指令多數據流(SIMD)指令集,能同時(shí)執行高達16個(gè)操作,用于新一代媒體和信號處理應用加速,其編程接口簡(jiǎn)單,性能十分優(yōu)異,功耗非常小。在NEON技術(shù)下執行MP3音頻解碼器,CPU頻率可低于10MHZ;運行GSM AMR語(yǔ)音數字編解碼器,CPU頻率僅為13MHZ,和其它專(zhuān)業(yè)的DSP處理器相比較,NEON能獲得更低的功耗和更簡(jiǎn)單的編程接口。NEON支持8位、16位、32位、64位整數及單精度浮點(diǎn)SIMD操作,以進(jìn)行音頻/視頻、圖像和游戲處理,滿(mǎn)足現代電子消費品的需求。
NEON實(shí)際上是ARM的SIMD(Single Instruction Multiple Data)技術(shù)的延續,其實(shí)就是ARM處理器中的向量處理功能。而且它同其它處理單元共享CPU的資源,如:整數操作、循環(huán)控制、Caching等,顯著(zhù)減小了處理器的面積和功耗,同時(shí)又簡(jiǎn)化了編程環(huán)境,不用控制一些特定硬件加速器的并發(fā)訪(fǎng)問(wèn)和數據規整性維護。這是NEON體系結構同硬件加速器相比最顯著(zhù)的優(yōu)點(diǎn)。
NEON的指令集對于編譯器來(lái)說(shuō)是十分友好的。它包括了高效的Promotion/Demotion操作和結構(Structure)的加載與寫(xiě)入而不用強行的向量對齊(Vector Alignment)。
在NEON擴展里,數據被組織在非常長(cháng)的寄存器中,而這些寄存器可以以8、16、32、64位來(lái)提供和貯存數據,而具體用多少位來(lái)處理他們是通過(guò)在指令中顯示指定的。這與x86體系結構中的AX,AL,AH的關(guān)系類(lèi)似。
圖2.4 NEON中的向量寄存器邏輯示意圖
上圖中的三個(gè)寄存器向量其實(shí)都是同一個(gè)128為的寄存器,程序開(kāi)發(fā)人員可以將它當做4個(gè)32位的寄存器向量來(lái)使用,也可以當做8個(gè)16位向量或者16個(gè)8位向量來(lái)使用。下面具一個(gè)具體的例子加以說(shuō)明。指令VADD.I16 D0,D1,D2
圖2.5 NEON中16位向量相加示意圖
上圖中為將D1向量加上D2向量之后將值存入D0向量的邏輯示意圖,在指令中VADD.I16表示該操作的每一個(gè)操作元為16位。
圖2.6 NEON中demotion示意圖
這個(gè)例子將一個(gè)4個(gè)32位元素的128位寄存器每個(gè)元素右移5位之后截取16位存至64位的D0中。指令中的I16.I32指定了這種數據降級(demotion)。
圖2.6 NEON中對于結構體的指令集支持
圖中將內存中的一個(gè)結構數組分別裝入三個(gè)寄存器向量中,向量與向量見(jiàn)的同一個(gè)索引位構成了一個(gè)完成的結構(圖中表示的是屏幕的三像素)。
2.2
Atom處理器,是Intel從2008年才推出的一款面向上網(wǎng)本、入門(mén)級PC(Entry Level PC)、Tablet PC、智能手機以及其他一些手持設備的處理器,由此可見(jiàn),Intel的Atom架構瞄準的市場(chǎng)是已經(jīng)被ARM稱(chēng)霸已久的移動(dòng)計算領(lǐng)域,兩方的戰爭可見(jiàn)一斑。而至今為止經(jīng)歷了四次重大的革新。
1)
2)
3)
評論