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