官术网_书友最值得收藏!

3.2 體系結(jié)構(gòu)的歷史與擴(kuò)展

在本節(jié)中,我們首先通過(guò)以前的版本來(lái)簡(jiǎn)要地看看體系結(jié)構(gòu)的發(fā)展。不熟悉ARM體系結(jié)構(gòu)的讀者如果碰到不明白的術(shù)語(yǔ),請(qǐng)不要擔(dān)心,因?yàn)槲覀儗⒃诤竺娴恼鹿?jié)中加以詳細(xì)描述。

從20世紀(jì)80年代中期的第一款測(cè)試硅片到20世紀(jì)90年代初的第一個(gè)ARM6和ARM7設(shè)備,ARM體系結(jié)構(gòu)的變化相對(duì)較小。在第1版本的體系結(jié)構(gòu)中,ARM1實(shí)現(xiàn)了大部分異常模式的加載、存儲(chǔ)和算術(shù)運(yùn)算,以及寄存器組。第2版本增加了乘法和乘法累加指令,以及對(duì)協(xié)處理器的支持,再加上一些進(jìn)一步的創(chuàng)新。這些早期的處理器只支持26位的地址空間。第3版本的體系結(jié)構(gòu)分離了程序指針寄存器和程序狀態(tài)寄存器,并增加了一些新的模式來(lái)支持32位的地址空間。第4版本增加了對(duì)半字的加載和存儲(chǔ)操作以及一個(gè)額外的內(nèi)核級(jí)特權(quán)模式。

ARMv4T體系結(jié)構(gòu)推出的Thumb(16位)指令集已經(jīng)在ARM7TDMI?和ARM9TDMI?的處理器上應(yīng)用,并已出貨數(shù)十億美元的產(chǎn)品。ARMv5TE體系結(jié)構(gòu)添加改進(jìn)了DSP類型操作和飽和算術(shù)和ARM/Thumb互相配合。ARMv6的提出了一些增強(qiáng)功能,如支持未對(duì)齊的內(nèi)存訪問(wèn),對(duì)存儲(chǔ)器結(jié)構(gòu)的重要改變和對(duì)多處理器的支持,再加上對(duì)32位寄存器內(nèi)字節(jié)或半字的SIMD操作的支持,它還提供了許多可選的擴(kuò)展,主要是Thumb-2和安全擴(kuò)展(TrustZone)。Thumb-2將Thumb擴(kuò)展到混合長(zhǎng)度(16位和32位)的指令集。ARMv7-A體系結(jié)構(gòu)對(duì)Thumb-2進(jìn)行強(qiáng)制性擴(kuò)展,并增加了高級(jí)SIMD擴(kuò)展(NEON),這將在第9章和第21章中描述。

數(shù)年以來(lái),ARM在ARM9中采用了連續(xù)編號(hào)處理器系統(tǒng),ARM9是從ARM8發(fā)展來(lái)的,ARM8又是繼ARM7而來(lái)的。在整個(gè)ARM家族中,用附加的各種數(shù)字和字母來(lái)表示不同的變種。例如,ARM7TDMI處理器用T來(lái)表示Thumb,用D表示Debug, M表示快速乘法器,I表示嵌入式ICE。

對(duì)于ARMv7體系結(jié)構(gòu),ARM公司采用商標(biāo)Cortex,并補(bǔ)充表明處理器支持哪種配置系列(A、R還是M)。圖3-1顯示了不同版本的體系結(jié)構(gòu)如何對(duì)應(yīng)于不同的處理器實(shí)現(xiàn)。注意,這個(gè)圖不全面,也不包括所有體系結(jié)構(gòu)的版本或處理器實(shí)現(xiàn)。

圖3-1 體系結(jié)構(gòu)和處理器

圖3-2中展示了體系結(jié)構(gòu)隨著時(shí)間的發(fā)展,闡述了在每一個(gè)新版本體系結(jié)構(gòu)中的新增功能。幾乎所有體系結(jié)構(gòu)的改變都是向后兼容的,這意味著對(duì)ARMv4T體系結(jié)構(gòu)編寫(xiě)的軟件仍然可以用于ARMv7體系結(jié)構(gòu)的處理器。

圖3-2 體系結(jié)構(gòu)歷史

本書(shū)的各個(gè)章節(jié)將詳細(xì)討論體系結(jié)構(gòu)的每個(gè)主題,但在這里,我們將簡(jiǎn)要地介紹了一些基本結(jié)構(gòu)單元。

1.DSP乘累加和飽和算術(shù)指令

加入到ARMv5TE體系結(jié)構(gòu)中的這些指令,改善了數(shù)字信號(hào)處理和多媒體軟件的能力,并由字母E來(lái)表示。這些新的指令提供了許多不同種類的帶符號(hào)乘累加、飽和加減、前導(dǎo)零計(jì)數(shù),并且在更高版本的體系結(jié)構(gòu)上保留下來(lái)。在許多情況下,這使得可以在系統(tǒng)中省掉一個(gè)簡(jiǎn)單的獨(dú)立DSP。

2.Jazelle

當(dāng)需要節(jié)省電量時(shí),Jazelle DBX(直接字節(jié)碼執(zhí)行)被ARMv5TEJ用來(lái)改善執(zhí)行Java代碼的性能,增加內(nèi)存的可用性和即時(shí)(JIT)編譯器的改進(jìn),降低處理器的應(yīng)用價(jià)值。因此,許多的ARMv7-A處理器不需要硬件加速。

在非常有限的內(nèi)存中提供給系統(tǒng)高性能的Java性能時(shí),Jazelle DBX是最適合的,例如,功能型手機(jī)或低成本的嵌入式應(yīng)用。在當(dāng)今的系統(tǒng)中,它主要是用于向后兼容。

3.Thumb執(zhí)行環(huán)境(ThumbEE)

由于ARMv7-A的引進(jìn)和要求,ThumbEE有時(shí)也被稱為Jazelle-RCT(運(yùn)行時(shí)編譯目標(biāo))。它涉及對(duì)Thumb指令集微小改變,使它能更好地在受控環(huán)境中運(yùn)行而生成代碼(如管理語(yǔ)言中的Java、Dalvik、C#、Python或Perl)。

ThumbEE被用在實(shí)時(shí)(JIT)或提前(AOT)編譯器中,它可以減少重新編譯的代碼大小。管理代碼的編譯不屬于本書(shū)的討論范圍。

4.Thumb-2

在ARMv6T2中引進(jìn)Thumb-2技術(shù),此技術(shù)也是ARMv7所需。該技術(shù)將原來(lái)的16位Thumb指令集擴(kuò)展到32位指令集。16位和32位Thumb指令集的組合實(shí)現(xiàn)了原始Thumb指令集的相似代碼密度,但性能類似于32位ARM指令集。由此產(chǎn)生的Thumb指令集提供了幾乎所有的ARM指令集的功能,以及額外的功能。

5.安全擴(kuò)展(TrustZone)

ARMv6K引入的可選安全擴(kuò)展TrustZone已經(jīng)在所有ARM Cortex-A處理器中實(shí)現(xiàn)。TrustZone提供了一個(gè)獨(dú)立的安全區(qū)域,可以將敏感代碼和數(shù)據(jù)從包含操作系統(tǒng)和應(yīng)用程序的普通區(qū)域分離出來(lái)。因此,安全區(qū)域中的軟件旨在為普通(非安全區(qū)域)提供安全服務(wù)。在第27章中將更詳細(xì)地描述TrustZone。

6.VFP

在ARMv7之前,VFP的擴(kuò)展被稱為矢量浮點(diǎn)結(jié)構(gòu),并用于矢量運(yùn)算。VFP是一種實(shí)現(xiàn)單精度和可選雙精度浮點(diǎn)運(yùn)算的擴(kuò)展,符合ANSI/IEEE標(biāo)準(zhǔn)的浮點(diǎn)運(yùn)算。

7.高級(jí)SIMD(NEON)

ARM NEON技術(shù)使得高級(jí)單指令多數(shù)據(jù)(SIMD)指令集擁有獨(dú)立的寄存器表(與VFP共享),一些具體實(shí)現(xiàn)有單獨(dú)的NEON流水線后端,支持8位、16位、32位和64位整數(shù),以及單精度(32位)浮點(diǎn)數(shù)據(jù),并可以在64位和128位的寄存器上進(jìn)行運(yùn)算。

8.大物理地址擴(kuò)展(LPAE)

LPAE是v7-A體系結(jié)構(gòu)的可選部分,并且在Cortex-A7和Cortex-A15處理器上實(shí)現(xiàn),它允許32位處理器由原來(lái)通常最大的4 GB訪問(wèn)空間擴(kuò)展到1 TB的訪問(wèn)空間,這1 TB是通過(guò)把32位虛擬內(nèi)存地址轉(zhuǎn)換成40位物理內(nèi)存地址得來(lái)的。這部分請(qǐng)查閱11.9節(jié)。

9.虛擬化

ARM處理器的虛擬化擴(kuò)展也是ARMv7-A體系結(jié)構(gòu)文件的可選擴(kuò)展,此擴(kuò)展可支持通過(guò)虛擬機(jī)監(jiān)視器(稱為虛擬機(jī)超級(jí)管理員)從一個(gè)操作系統(tǒng)切換到另一個(gè)。當(dāng)在一個(gè)單處理器和多處理器系統(tǒng)中執(zhí)行時(shí),虛擬化擴(kuò)展可支持在一個(gè)處理器上運(yùn)行多個(gè)虛擬機(jī),請(qǐng)參閱第28章。

10.big.LITTLE大小模式

big.LITTLE大小模式處理被引入到ARMv7體系結(jié)構(gòu)中,可解決行業(yè)當(dāng)前的的挑戰(zhàn),即如何創(chuàng)建既有高性能又有極佳節(jié)能效果的片上系統(tǒng)(SoC)以延長(zhǎng)電池使用壽命。big.LITTLE采用了高性能的Cortex-A15處理器,再加上一個(gè)高效節(jié)能的Cortex-A7處理器,Cortex-A15處理器可被用于繁重的工作量,Cortex-A7處理器可以承擔(dān)移動(dòng)設(shè)備的大部分工作。第29章將詳細(xì)描述big.LITTLE。

推薦閱讀
  1. 全國(guó)計(jì)算機(jī)等級(jí)考試歷年真題與機(jī)考題庫(kù):二級(jí)MS Office高級(jí)應(yīng)用
  2. 全國(guó)計(jì)算機(jī)等級(jí)考試歷年真題與機(jī)考題庫(kù):一級(jí)計(jì)算機(jī)基礎(chǔ)及MS Office應(yīng)用
  3. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《四級(jí)軟件工程》復(fù)習(xí)全書(shū)【核心講義+歷年真題詳解】
  4. 全國(guó)計(jì)算機(jī)等級(jí)考試一本通:一級(jí)計(jì)算機(jī)基礎(chǔ)及MS Office應(yīng)用
  5. 5天通過(guò)職稱計(jì)算機(jī)考試(考點(diǎn)視頻串講+全真模擬):Excel 2003中文電子表格(第2版) (全國(guó)專業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試指導(dǎo)叢書(shū))
  6. 2014年全國(guó)計(jì)算機(jī)等級(jí)考試3年真題精解與過(guò)關(guān)全真訓(xùn)練題:二級(jí)C語(yǔ)言程序設(shè)計(jì)
  7. 全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》專用教材【考綱分析+考點(diǎn)精講+真題演練+強(qiáng)化習(xí)題】
  8. 2014年全國(guó)計(jì)算機(jī)等級(jí)考試3年真題精解與過(guò)關(guān)全真訓(xùn)練題:二級(jí)Visual FoxPro數(shù)據(jù)庫(kù)程序設(shè)計(jì)
  9. 5天通過(guò)職稱計(jì)算機(jī)考試(考點(diǎn)視頻串講+全真模擬):Word 2003中文字處理(第2版) (全國(guó)專業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試指導(dǎo)叢書(shū))
  10. 2024年全國(guó)計(jì)算機(jī)等級(jí)考試模擬考場(chǎng)二級(jí)C語(yǔ)言
  11. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)Visual Basic語(yǔ)言程序設(shè)計(jì)》歷年真題與模擬試題詳解
  12. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《四級(jí)計(jì)算機(jī)網(wǎng)絡(luò)》復(fù)習(xí)全書(shū)【核心講義+歷年真題詳解】
  13. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《四級(jí)操作系統(tǒng)原理》復(fù)習(xí)全書(shū)【核心講義+歷年真題詳解】
  14. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《三級(jí)嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)》專用教材【考綱分析+考點(diǎn)精講+真題演練】
  15. 2020年3月全國(guó)計(jì)算機(jī)等級(jí)考試《三級(jí)信息安全技術(shù)》復(fù)習(xí)全書(shū)【核心講義+歷年真題詳解】
主站蜘蛛池模板: 观塘区| 时尚| 同仁县| 固原市| 东明县| 门源| 哈尔滨市| 驻马店市| 高州市| 汾西县| 洛阳市| 武陟县| 南川市| 剑阁县| 甘洛县| 府谷县| 昌江| 兴国县| 新干县| 泰顺县| 枣庄市| 兴国县| 宁德市| 闽侯县| 西乌珠穆沁旗| 章丘市| 渑池县| 淮南市| 介休市| 大厂| 民县| 镇安县| 江永县| 诸暨市| 开阳县| 浙江省| 成都市| 六枝特区| 富锦市| 郓城县| 浦北县|