ARM 架構(gòu)/特性(處理器)全解
ARM 架構(gòu)是構(gòu)建每個(gè) ARM 處理器的基礎(chǔ)。ARM 架構(gòu)隨著時(shí)間的推移不斷發(fā)展,其中包含的架構(gòu)功能可滿(mǎn)足不斷增長(zhǎng)的新功能、高性能需求以及新興市場(chǎng)的需要。有關(guān)最新公布版本的信息,請(qǐng)參閱 ARMv8 架構(gòu)。
ARM 架構(gòu)支持跨躍多個(gè)性能點(diǎn)的實(shí)現(xiàn),并已在許多細(xì)分市場(chǎng)中成為主導(dǎo)的架構(gòu)。ARM 架構(gòu)支持非常廣泛的性能點(diǎn),因而可以利用最新的微架構(gòu)技術(shù)獲得極小的 ARM 處理器實(shí)現(xiàn)和極有效的高級(jí)設(shè)計(jì)實(shí)現(xiàn)。實(shí)現(xiàn)規(guī)模、性能和低功耗是 ARM 架構(gòu)的關(guān)鍵特性。
ARM 已經(jīng)開(kāi)發(fā)了架構(gòu)擴(kuò)展,從而為 Java 加速 (Jazelle®)、安全性 (TrustZone®)、SIMD 和高級(jí) SIMD (NEON™) 技術(shù)提供支持。ARMv8-A 架構(gòu)增加了密碼擴(kuò)展作為可選功能。
ARM 架構(gòu)與精簡(jiǎn)指令集計(jì)算 (RISC) 架構(gòu)類(lèi)似,因?yàn)樗韵碌湫?RISC 架構(gòu)特征:
統(tǒng)一寄存器文件加載/存儲(chǔ)架構(gòu),其中的數(shù)據(jù)處理操作只針對(duì)寄存器內(nèi)容,并不直接針對(duì)內(nèi)存內(nèi)容。
簡(jiǎn)單尋址模式,所有加載/存儲(chǔ)地址只通過(guò)寄存器內(nèi)容和指令字段確定。
對(duì)基本 RISC 架構(gòu)的增強(qiáng)使 ARM 處理器可以實(shí)現(xiàn)較高性能、較小代碼大小、較低功耗和較小硅面積的良好平衡。
A32(ARM)架構(gòu)/特性
ARM(通常稱(chēng)為 A32)是一種固定長(zhǎng)度(32 位)的指令集。它是 ARMv4T、ARMv5TEJ 和 ARMv6 架構(gòu)中使用的基礎(chǔ) 32 位 ISA。在這些架構(gòu)中,該指令集用于需要高性能的應(yīng)用領(lǐng)域,或用于處理硬件異常,如中斷和處理器啟動(dòng)。
對(duì)于性能關(guān)鍵應(yīng)用和舊代碼,Cortex 架構(gòu)的 Cortex™-A 和 Cortex-R 配置文件也支持 ARM ISA。其多數(shù)功能都包括在與 Thumb-2 技術(shù)一起引入的 Thumb 指令集中。Thumb (T32) 從改進(jìn)的代碼密度中獲益。
ARM 指令的長(zhǎng)度為 32 位,需要 4 字節(jié)邊界對(duì)齊。
可以對(duì)大多數(shù) ARM 指令進(jìn)行“條件化”,使其僅在以前的指令設(shè)置了特定條件代碼時(shí)執(zhí)行。這意味著,如果應(yīng)用程序狀態(tài)寄存器中的 N、Z、C 和 V 標(biāo)志滿(mǎn)足指令中指定的條件,則指令僅對(duì)程序員的模型操作、內(nèi)存和協(xié)處理器發(fā)揮其正常作用。如果這些標(biāo)記不滿(mǎn)足此條件,則指令會(huì)用作 NOP,即執(zhí)行過(guò)程正常進(jìn)入下一指令(包括將對(duì)異常進(jìn)行任意相關(guān)檢查),但不發(fā)揮任何其他作用。此條件化指令允許對(duì) if 和 while 語(yǔ)句的一小部分進(jìn)行編碼,而無(wú)需使用跳轉(zhuǎn)指令。
條件代碼N:否定條件代碼,如果結(jié)果為否定的,則設(shè)置為 1
條件代碼Z:零條件代碼,如果指令的結(jié)果為 0,則設(shè)置為 1
條件代碼C:進(jìn)位條件代碼,如果指令生成進(jìn)位條件,則設(shè)置為 1
條件代碼V:溢出條件代碼,如果指令生成溢出條件,則設(shè)置為 1。
T32(Thumb)架構(gòu)/特性
成本敏感型嵌入式控制應(yīng)用領(lǐng)域(例如手機(jī)、磁盤(pán)驅(qū)動(dòng)器、調(diào)制解調(diào)器和尋呼機(jī))一直在尋求通過(guò)某些方式在兼顧內(nèi)存占用空間的前提下以最低成本實(shí)現(xiàn) 32 位性能和地址空間。
Thumb (T32) 指令集提供已壓縮至 16 位寬操作碼的、最常用的 32 位 ARM 指令的子集。在執(zhí)行時(shí),這些 16 位指令實(shí)時(shí)、透明地解壓縮為完整 32 位 ARM 指令,且無(wú)性能損失。
Thumb 可向設(shè)計(jì)人員提供:
卓越的代碼密度,可實(shí)現(xiàn)最小的系統(tǒng)內(nèi)存大小和最低的成本。
在 8 位或 16 位總線上的 8 位或 16 位內(nèi)存中實(shí)現(xiàn) 32 位性能,從而降低系統(tǒng)成本。
建立的 ARM 功能
行業(yè)領(lǐng)先的 MIPS/Watt,以盡可能延長(zhǎng)電池壽命和增加 RISC 性能
小的芯片面積,以進(jìn)行集成和盡可能降低芯片成本
全球多合作伙伴源,可提供安全保證。
設(shè)計(jì)人員可以同時(shí)使用 16 位 Thumb 和 32 位 ARM 指令集,這樣,他們就可以靈活地根據(jù)應(yīng)用需求在子例程級(jí)別上增強(qiáng)性能或調(diào)整代碼大小。
Thumb ISA 受 ARM 生態(tài)體系的廣泛支持,包括完善的 Windows 軟件開(kāi)發(fā)環(huán)境以及開(kāi)發(fā)和評(píng)估卡。
改進(jìn)了代碼密度,具有性能效率和功效
Thumb-2 技術(shù)使 Thumb 成為混合(32 位和 16 位)長(zhǎng)度指令集,是所有 ARMv7 兼容的 ARM Cortex 實(shí)現(xiàn)所通用的指令集。Thumb-2 提升了眾多嵌入式應(yīng)用程序的性能、能效和代碼密度。
該技術(shù)與現(xiàn)有 ARM 和 Thumb 解決方案向后兼容,同時(shí)顯著擴(kuò)展了 Thumb 指令集的可用功能,從而使更多應(yīng)用程序從 Thumb 的同類(lèi)最佳代碼密度中獲益。為獲得性能優(yōu)化的代碼,Thumb-2 技術(shù)使用少于 31% 的內(nèi)存以降低系統(tǒng)成本,同時(shí),提供比現(xiàn)有高密度代碼高出 38% 的性能,因此可用于延長(zhǎng)電池壽命,或豐富產(chǎn)品功能集。