Perface ARM簡介
ARM處理器無處不在。
移動電話、個人計算機(jī)、電視或汽車。在大約30億元的微處理器總出貨量中,x86架構(gòu)占據(jù)一個非常小的位置(但仍然非常有利可圖的)。
ARM歷史
ARM處理器不是一個單一的處理器,而是一個擁有相同指令集和程序員模型的同一處理器家族,并有一定程度的向后兼容性。
第一個ARM的處理器(ARM1)是由Acorn電腦有限公司中Sophie Wilson和Steve Furber領(lǐng)導(dǎo)的小組設(shè)計完成的,并在1985年4月生產(chǎn)了第一款硅片。
ARM1迅速被ARM2取代(其中新增乘法硬件), ARM2被用于實際系統(tǒng)中,包括Acorn的阿基米德個人計算機(jī)。
1990年11月,ARM成立于英國劍橋,作為高級RISC機(jī)器有限公司,它是蘋果電腦、Acorn電腦和VLSI科技公司的合資企業(yè),最初的12名員工主要來自Acorn電腦的團(tuán)隊。
ARM成為一個獨(dú)立的公司的原因之一是處理器已經(jīng)被蘋果電腦用在了牛頓產(chǎn)品中。
新公司迅速決定,他們技術(shù)前進(jìn)的最好方式是注冊他們的知識產(chǎn)權(quán)(IP),而不是他們自己設(shè)計、制造和銷售芯片,他們將出售設(shè)計權(quán)給半導(dǎo)體公司。
出名的戰(zhàn)略,背后有很多有意思的故事。
ARM也注冊了物理IP——單元庫(NAND門、RAM等)、圖形和視頻加速器以及軟件開發(fā)產(chǎn)品,如編譯器、調(diào)試器和開發(fā)板。
片上系統(tǒng)(SoC)
由一個單獨(dú)的公司來生產(chǎn)這種系統(tǒng)的所有部件是越來越罕見的。出于這一點(diǎn),ARM以及其他半導(dǎo)體IP公司設(shè)計和驗證組件(所謂的IP模塊或處理器)。
半導(dǎo)體公司允許在他們自己的設(shè)計使用這些模塊,如微處理器、DSP、3D圖形和視頻控制器及許多其他功能。
半導(dǎo)體公司將這些模塊和特定系統(tǒng)的其他部分集成到芯片上,形成一個系統(tǒng)級芯片(SoC)。為了形成系統(tǒng),這些設(shè)備的構(gòu)造者必須選擇適當(dāng)?shù)奶幚砥?、?nèi)存控制器、片上存儲器、外設(shè)、互連總線和其他邏輯塊(可能包括模擬或射頻部分)。
ASIC(Application Specific Integrated Circuit)這個術(shù)語,這是一種為特定應(yīng)用而設(shè)計的集成電路。一個單獨(dú)的ASIC可能包含一個ARM處理器、內(nèi)存和其他組件。
這跟那些被稱為系統(tǒng)級芯片的設(shè)備顯然有很多相似的地方。SoC通常是指一種具有高集成度的設(shè)備,即在單一的設(shè)備上包括系統(tǒng)的很多部分,可能包括模擬、混合信號或射頻電路。
當(dāng)然,像Linux這樣強(qiáng)大的操作系統(tǒng)需要大量的內(nèi)存空間,不僅僅是在單一的硅器件上運(yùn)行。由于單個設(shè)備不能包含整個系統(tǒng),因此,片上系統(tǒng)的命名未必完全準(zhǔn)確。
拋開硅片面積的問題不談,在通常的情況下,一個系統(tǒng)的許多部分需要專業(yè)的硅制造工藝并避免它們被放置到相同的晶片上。
在一定程度上,SoC概念的擴(kuò)展就是封裝內(nèi)系統(tǒng)(SiP),在一個單一的物理封裝內(nèi)結(jié)合了許多單獨(dú)的芯片,也被廣泛認(rèn)為封裝堆疊。
SoC芯片采用的封裝用于底部(用于連接到PCB)到頂部(包含連接到獨(dú)立的軟件包,可能包含一個閃速存儲器或一個大的SDRAM器件)的連接。
嵌入式系統(tǒng)
嵌入式系統(tǒng)的常規(guī)定義是在一塊計算機(jī)硬件上運(yùn)行軟件以執(zhí)行特定的任務(wù)。例如,電視機(jī)頂盒、智能卡、路由器、磁盤驅(qū)動器、打印機(jī)、汽車發(fā)動機(jī)管理系統(tǒng)、MP3或復(fù)印機(jī)。
與計算機(jī)系統(tǒng)相比,不同之處在于計算機(jī)上具有各種各樣的通用軟件,以及輸入和輸出的設(shè)備,如鍵盤和某種類型的圖形化顯示器。
現(xiàn)在,這種區(qū)分變得越來越模糊,如移動電話,一個基本電話原型可能只能執(zhí)行撥打電話的任務(wù),但現(xiàn)代智能手機(jī)還可以運(yùn)行一個復(fù)雜的操作系統(tǒng),甚至可下載成千上萬的應(yīng)用程序。
嵌入式系統(tǒng)可能包含簡單的8位微處理器,如Intel 8051或PIC微控制器,或者包含一些復(fù)雜的32位或64位處理器,如ARM系列。
系統(tǒng)需要一些RAM和某種形式的非易失性存儲空間來保存系統(tǒng)執(zhí)行的程序,需要一些額外的外圍設(shè)備,對于這些設(shè)備的實際功能(通常包括通用異步收發(fā)器(UART)、中斷控制器、定時器、GPIO控制器)也可能是相當(dāng)復(fù)雜的模塊,如DSP、GPU(圖形處理器)或DMA控制器。
在嵌入式系統(tǒng)上運(yùn)行的軟件通常分為兩個獨(dú)立的部分:操作系統(tǒng)(OS)和在OS上運(yùn)行的應(yīng)用程序。
大量投入使用的操作系統(tǒng),從簡單的內(nèi)核、復(fù)雜的實時操作系統(tǒng)(RTOS),到全功能的、存在于電腦上的復(fù)雜操作系統(tǒng)。
由于嵌入式系統(tǒng)上很多限制存在,與通用PC的編程相比,嵌入式系統(tǒng)的編程可能會面臨更多的挑戰(zhàn)。
- (1)內(nèi)存占用。在許多系統(tǒng)中,為了最大限度地降低成本,內(nèi)存的大小是被限制的。程序員可能會被迫考慮程序的規(guī)模,以及在程序運(yùn)行時如何減少對內(nèi)存的使用。
- (2)實時性。某些系統(tǒng)的特點(diǎn)是對外部事件的響應(yīng)有一定的時間限制。這可能是“硬性”的要求(如汽車制動系統(tǒng)必須在一定時間內(nèi)響應(yīng))或“軟性”的要求(如音頻處理必須某個時間幀下完成,以避免糟糕的用戶體驗,不能滿足則可能導(dǎo)致這個系統(tǒng)不值錢)。
- (3)功率。許多嵌入式系統(tǒng)中的電源都是電池,程序員和硬件設(shè)計師必須最大限度地減少對系統(tǒng)的能源使用。這是可以做到的,例如通過減慢時鐘、減少供應(yīng)電壓或在沒有工作的時候關(guān)閉處理器。
- (4)成本。成本可能是一個系統(tǒng)設(shè)計的最大約束點(diǎn)。
- (5)上市時間。在競爭激烈的市場中,開發(fā)一個產(chǎn)品所用的時間是影響該產(chǎn)品的成功的一個重要因素。
ARM體系結(jié)構(gòu)和處理器
RM本身并不生產(chǎn)硅器件。相反地,ARM創(chuàng)建微處理器設(shè)計,并授權(quán)給半導(dǎo)體公司和原始設(shè)備制造商(OEM),由原始設(shè)備制造商把微處理器集成到片上系統(tǒng)設(shè)備上。
為確保實施上的兼容,ARM定義的體系結(jié)構(gòu)規(guī)范中明確了合格產(chǎn)品的行為。ARM體系結(jié)構(gòu)中處理器的實現(xiàn)符合一個特定版本的體系結(jié)構(gòu),不同的處理器可能會有不同的內(nèi)部實現(xiàn)和微架構(gòu),但不同的周期時間和時鐘速度都符合同一版本的體系結(jié)構(gòu)。
- (1)體系結(jié)構(gòu)。
定義了常見的一組或一系列的處理器設(shè)計行為,也在ARM體系結(jié)構(gòu)參考手冊(ARM ARM)中定義,包括指令集、寄存器、異常處理和其他編程模塊功能。該體系結(jié)構(gòu)定義的是程序員可見的行為,例如,哪個寄存器可用以及單獨(dú)的匯編語言指令能完成的功能。
- (2)微體系結(jié)構(gòu)。
定義了體系結(jié)構(gòu)的可見行為是如何執(zhí)行的,如流水線級數(shù);還會有一些程序員可見的效果**,如執(zhí)行特定的指令要多久、停頓周期后的結(jié)果。**
- (3)處理器。
一個處理器是一個微體系結(jié)構(gòu)的具體實現(xiàn),一個處理器可能會被授權(quán)給多個公司制造生產(chǎn),因此**,它可能已被集成到各種各樣的設(shè)備和系統(tǒng)上,同時也有與之相應(yīng)的存儲器映射、外圍設(shè)備和其他執(zhí)行特定功能的模塊**。處理器都在技術(shù)參考手冊中介紹,這些手冊可在ARM網(wǎng)站上找到。
- (4)核心。
我們使用這個詞來描述一個多核處理器的一個單獨(dú)的邏輯執(zhí)行單元。
- (5)SoC。
一個片上系統(tǒng)包含一個或多個處理器,同時也包含存儲器和外設(shè),該設(shè)備可能包含一個或多個額外的處理器、存儲器和外設(shè)系統(tǒng)的一部分。針對這些系統(tǒng),一般都由獨(dú)立SoC或平臺的供應(yīng)商的文檔提供詳細(xì)介紹。
體系結(jié)構(gòu)的版本
ARM會定期發(fā)布體系結(jié)構(gòu)新的版本,在現(xiàn)有功能的基礎(chǔ)上新增新的功能或更新。這種更新通常是向后兼容的,這意味著運(yùn)行在舊版本的用戶編碼在新版本上仍可以正確運(yùn)行。
當(dāng)然,利用新功能編寫的代碼就不一定能在舊的處理器上運(yùn)行了,因為舊處理器通常缺少這個功能模塊。
在所有版本的體系結(jié)構(gòu)中,一些系統(tǒng)特性和行為留給具體實現(xiàn)來定義。例如,體系結(jié)構(gòu)不定義高速緩存的大小、指令周期的時序,這是由具體實現(xiàn)的處理器和SoC決定的。
**每個體系結(jié)構(gòu)的版本都定義了可選的擴(kuò)展。**在處理器的具體實現(xiàn)中,這些擴(kuò)展可能并沒有被實現(xiàn)。例如,在ARMv7的體系結(jié)構(gòu)中,高級SIMD(NEON)技術(shù)就是一個可選擴(kuò)展。
**ARMv7體系結(jié)構(gòu)還具有配置屬性的概念。針對處理器的不同市場和用途,產(chǎn)生了這些體系結(jié)構(gòu)的變種。**簡介如下。
- (1)A:應(yīng)用程序配置系列,定義了一種針對高性能處理器的體系結(jié)構(gòu),它支持使用內(nèi)存管理單元(MMU)的虛擬內(nèi)存系統(tǒng),能夠運(yùn)行復(fù)雜的操作系統(tǒng),同時支持ARM和Thumb指令集。
- (2)R:實時配置系列,定義了一種系統(tǒng)的實時結(jié)構(gòu),這種結(jié)構(gòu)需要確定的時序和較低的中斷響應(yīng)延遲,不需要對虛擬內(nèi)存系統(tǒng)和MMU的支持,而是使用一個簡單的內(nèi)存保護(hù)單元(MPU)。
- (3)M:微控制器的配置系列,定義了一種低成本和低性能系統(tǒng)的體系結(jié)構(gòu),其中低延遲的中斷處理是非常重要的。相比其他配置系列,它使用了一個不同的異常處理模型,并只支持一種Thumb指令集的變體。
這里就不展開了,因為基本上都是基于V8了。
體系結(jié)構(gòu)的歷史與擴(kuò)展
從20世紀(jì)80年代中期的第一款測試硅片到20世紀(jì)90年代初的第一個ARM6和ARM7設(shè)備,ARM體系結(jié)構(gòu)的變化相對較小。
-
在第1版本的體系結(jié)構(gòu)中,ARM1實現(xiàn)了大部分異常模式的加載、存儲和算術(shù)運(yùn)算,以及寄存器組。
-
第2版本增加了乘法和乘法累加指令,以及對協(xié)處理器的支持,再加上一些進(jìn)一步的創(chuàng)新。這些早期的處理器只支持26位的地址空間。
-
第3版本的體系結(jié)構(gòu)分離了程序指針寄存器和程序狀態(tài)寄存器,并增加了一些新的模式來支持32位的地址空間。
-
第4版本增加了對半字的加載和存儲操作以及一個額外的內(nèi)核級特權(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)功能,如支持未對齊的內(nèi)存訪問,對存儲器結(jié)構(gòu)的重要改變和對多處理器的支持,再加上對32位寄存器內(nèi)字節(jié)或半字的SIMD操作的支持,它還提供了許多可選的擴(kuò)展,主要是Thumb-2和安全擴(kuò)展(TrustZone)。Thumb-2將Thumb擴(kuò)展到混合長度(16位和32位)的指令集。
-
ARMv7-A體系結(jié)構(gòu)對Thumb-2進(jìn)行強(qiáng)制性擴(kuò)展,并增加了高級SIMD擴(kuò)展(NEON)。
-
數(shù)年以來,ARM在ARM9中采用了連續(xù)編號處理器系統(tǒng),
-
ARM9是從ARM8發(fā)展來的,ARM8又是繼ARM7而來的。
在整個ARM家族中,用附加的各種數(shù)字和字母來表示不同的變種。例如,ARM7TDMI處理器用T來表示Thumb,用D表示Debug, M表示快速乘法器,I表示嵌入式ICE。
對于ARMv7體系結(jié)構(gòu),ARM公司采用商標(biāo)Cortex,并補(bǔ)充表明處理器支持哪種配置系列(A、R還是M)。
圖顯示了不同版本的體系結(jié)構(gòu)如何對應(yīng)于不同的處理器實現(xiàn)。
注意,這個圖不全面,也不包括所有體系結(jié)構(gòu)的版本或處理器實現(xiàn)。
整幾張圖給大家看看:原創(chuàng)見水印
ARM V7與V8的比較:
ARM V7與V8的CPU核:
文章來源地址http://www.zghlxwxcb.cn/news/detail-789889.html
以上這些東西再ARM官網(wǎng)都能找到相應(yīng)的圖,到這里咱們有個感性的認(rèn)識即可。
最后在這里,我們將簡要地介紹了一些基本結(jié)構(gòu)單元。
一些基本結(jié)構(gòu)單元
1.DSP乘累加和飽和算術(shù)指令
加入到ARMv5TE體系結(jié)構(gòu)中的這些指令,改善了數(shù)字信號處理和多媒體軟件的能力,并由字母E來表示。
這些新的指令提供了許多不同種類的帶符號乘累加、飽和加減、前導(dǎo)零計數(shù),并且在更高版本的體系結(jié)構(gòu)上保留下來。在許多情況下,這使得可以在系統(tǒng)中省掉一個簡單的獨(dú)立DSP。
2.Jazelle
當(dāng)需要節(jié)省電量時,Jazelle DBX(直接字節(jié)碼執(zhí)行)被ARMv5TEJ用來改善執(zhí)行Java代碼的性能,增加內(nèi)存的可用性和即時(JIT)編譯器的改進(jìn),降低處理器的應(yīng)用價值。因此,許多的ARMv7-A處理器不需要硬件加速。
在非常有限的內(nèi)存中提供給系統(tǒng)高性能的Java性能時,Jazelle DBX是最適合的,例如,功能型手機(jī)或低成本的嵌入式應(yīng)用。在當(dāng)今的系統(tǒng)中,它主要是用于向后兼容。
3.Thumb執(zhí)行環(huán)境(ThumbEE)
由于ARMv7-A的引進(jìn)和要求,ThumbEE有時也被稱為Jazelle-RCT(運(yùn)行時編譯目標(biāo))。它涉及對Thumb指令集微小改變,使它能更好地在受控環(huán)境中運(yùn)行而生成代碼(如管理語言中的Java、Dalvik、C#、Python或Perl)。
ThumbEE被用在實時(JIT)或提前(AOT)編譯器中,它可以減少重新編譯的代碼大小。管理代碼的編譯不屬于本書的討論范圍。
4.Thumb-2
在ARMv6T2中引進(jìn)Thumb-2技術(shù),此技術(shù)也是ARMv7所需。該技術(shù)將原來的16位Thumb指令集擴(kuò)展到32位指令集。
16位和32位Thumb指令集的組合實現(xiàn)了原始Thumb指令集的相似代碼密度,但性能類似于32位ARM指令集。由此產(chǎn)生的Thumb指令集提供了幾乎所有的ARM指令集的功能,以及額外的功能。
5.安全擴(kuò)展(TrustZone)
ARMv6K引入的可選安全擴(kuò)展TrustZone已經(jīng)在所有ARM Cortex-A處理器中實現(xiàn)。TrustZone提供了一個獨(dú)立的安全區(qū)域,可以將敏感代碼和數(shù)據(jù)從包含操作系統(tǒng)和應(yīng)用程序的普通區(qū)域分離出來。
因此,安全區(qū)域中的軟件旨在為普通(非安全區(qū)域)提供安全服務(wù)。
6.VFP
在ARMv7之前,VFP的擴(kuò)展被稱為矢量浮點(diǎn)結(jié)構(gòu),并用于矢量運(yùn)算。VFP是一種實現(xiàn)單精度和可選雙精度浮點(diǎn)運(yùn)算的擴(kuò)展,符合ANSI/IEEE標(biāo)準(zhǔn)的浮點(diǎn)運(yùn)算。
7.高級SIMD(NEON)
ARM NEON技術(shù)使得高級單指令多數(shù)據(jù)(SIMD)指令集擁有獨(dú)立的寄存器表(與VFP共享),一些具體實現(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處理器上實現(xiàn),它允許32位處理器由原來通常最大的4 GB訪問空間擴(kuò)展到1 TB的訪問空間,這1 TB是通過把32位虛擬內(nèi)存地址轉(zhuǎn)換成40位物理內(nèi)存地址得來的。
9.虛擬化
ARM處理器的虛擬化擴(kuò)展也是ARMv7-A體系結(jié)構(gòu)文件的可選擴(kuò)展,此擴(kuò)展可支持通過虛擬機(jī)監(jiān)視器(稱為虛擬機(jī)超級管理員)從一個操作系統(tǒng)切換到另一個。
當(dāng)在一個單處理器和多處理器系統(tǒng)中執(zhí)行時,虛擬化擴(kuò)展可支持在一個處理器上運(yùn)行多個虛擬機(jī)。
10.big.LITTLE大小模式
big.LITTLE大小模式處理被引入到ARMv7體系結(jié)構(gòu)中,可解決行業(yè)當(dāng)前的的挑戰(zhàn),即如何創(chuàng)建既有高性能又有極佳節(jié)能效果的片上系統(tǒng)(SoC)以延長電池使用壽命。
big.LITTLE采用了高性能的Cortex-A15處理器,再加上一個高效節(jié)能的Cortex-A7處理器,Cortex-A15處理器可被用于繁重的工作量,Cortex-A7處理器可以承擔(dān)移動設(shè)備的大部分工作。
ARM Cortex-A系列處理器架構(gòu)關(guān)鍵點(diǎn)
許多關(guān)鍵點(diǎn)對于Cortex-A系列器件都是相同的。
- ● 32位RISC處理器,具有16×32位的寄存器和以模式為基礎(chǔ)的寄存器集合;
- ● 改進(jìn)型哈佛體系結(jié)構(gòu)(獨(dú)立的、指令和數(shù)據(jù)的并發(fā)訪問);
- ● load/store(加載/存儲)體系結(jié)構(gòu);
- ● 以Thumb-2技術(shù)為標(biāo)準(zhǔn);
- ● VFP和NEON的選項,有望成為通用目的應(yīng)用處理器的標(biāo)準(zhǔn)功能;
- ● 對來自于以前ARM處理器的代碼向后兼容;
- ● 4GB的虛擬地址空間和最小4 GB的物理地址空間;
- ● 虛擬地址轉(zhuǎn)換到物理地址的硬件轉(zhuǎn)換表;
- ● 虛擬頁面大小為4KB、64KB、1MB和16MB,可緩存屬性和存取權(quán)限可以在每個頁面上進(jìn)行單獨(dú)設(shè)置;
- ● 大端和小端字節(jié)數(shù)據(jù)訪問支持;
- ● 基本加載/存儲指令的未對齊訪問支持;
- ● 對稱多處理器SMP支持MPCore?變種,具有L1級別高速緩存的完整數(shù)據(jù);
- ● 自動緩存和轉(zhuǎn)換后備緩沖器(TLB)維護(hù)傳播提供高效率的SMP操作;
- ● 物理索引,物理標(biāo)記(PIPT)的數(shù)據(jù)高速緩存。
處理器和路徑
Cortex-A系列處理器
Cortex- A5處理器
Cortex-A5處理器支持ARMv7-A所有的架構(gòu)功能,包括TrustZone安全擴(kuò)展和NEON媒體處理引擎。
它的面積和功耗效率是極高的,但比其他Cortex-A系列處理器的最高性能都低。Cortex-A5處理器有單核和多核版本。
如圖所示的Cortex-A5處理器在某些情況下可以同時執(zhí)行一個非分支跳轉(zhuǎn)指令和緊接著的分支跳轉(zhuǎn)指令,并且包含一個復(fù)雜的分支預(yù)測邏輯,以避免因分支跳轉(zhuǎn)導(dǎo)致流水線被沖刷并重新填充。
NEON和浮點(diǎn)硬件的支持是可選的。Cortex-A5處理器還支持ARM和Thumb指令集以及Jazelle DBX和Jazelle-RCT技術(shù)。
Cortex-A7處理器
Cortex-A7多核處理器是一個高性能,低功耗的處理器,與其他在本書提到的Cortex-A系列處理器完全兼容。單核Cortex-A7處理器框圖如圖所示。
Cortex-A7處理器包含高性能的Cortex-A15處理器的所有功能,包括虛擬化、大的物理地址的擴(kuò)展(LPAE)、NENO和AMBA4 ACE的一致性。Cortex-A7 MPCore處理器具有以下特點(diǎn):
- ● 改進(jìn)內(nèi)存管理和總線接口;
- ● LPAE,可尋址高達(dá)1 TB的內(nèi)存;
- ● 通過AMBA4技術(shù)解決多核處理器集的一致性問題;
- ● AMBA4緩存一致性互連技術(shù)(CCI)保證在多個Cortex-A7 MPCore處理器之間實現(xiàn)所有的緩存一致性。
Cortex-A8處理器
Cortex-A8處理器是第一個實現(xiàn)ARMv7-A體系結(jié)構(gòu)的處理器。許多不同的處理器都使用它,包括三星S5PC100,德州儀器的OMAP3530和飛思卡爾的i.MX515,擁有很廣泛的應(yīng)用,有些能超過1 GHz的主頻。
與以前的ARM處理器相比,Cortex-A8處理器有更復(fù)雜的微體系結(jié)構(gòu)。
圖是單核Cortex-A8處理器框圖,展示了Cortex-A8處理器的內(nèi)部結(jié)構(gòu),包括路徑。
獨(dú)立的指令和數(shù)據(jù)的一級高速緩存的大小為16KB或32KB,是對集成的統(tǒng)一二級高速緩存的一種補(bǔ)充,二級高速緩存可高達(dá)1MB的大小。一級和二級高速緩存都可為處理器提供128位寬的數(shù)據(jù)接口。
一級數(shù)據(jù)緩存虛擬索引,但物理標(biāo)記,而二級高速緩存的索引和標(biāo)記都使用物理地址。在默認(rèn)情況下,NEON使用的數(shù)據(jù)是不通過L1來緩存的(雖然NEON可以讀寫L1數(shù)據(jù)高速緩存中的數(shù)據(jù))。
Cortex-A9處理器
Cortex-A9 MPCore處理器和Cortex-A9單核處理器提供比Cortex-A5和Cortex-A8處理器更高的性能,支持ARM、Thumb、Thumb-2、TrustZone、Jazelle RCT和DBX等技術(shù)單核Cortex-A9處理器框圖如圖所示。
一級高速緩存系統(tǒng)在硬件上支持1~4個處理器的多核軟件的高速緩存一致性。ARM提供外部的二級高速緩存控制器(L2C-310,以前稱為PL310),支持高達(dá)8MB的高速緩存大小。
該處理器還包含一個集成的中斷控制器,ARM通用中斷控制器(GIC)結(jié)構(gòu)規(guī)范的實現(xiàn),這可以被配置為對多達(dá)224個中斷源的支持。集成Cortex-A9處理器的設(shè)備,有nVidia的雙核Tegra-2、ST的SPEAr1300和TI的OMAP4平臺。
Cortex-A15處理器
Cortex-A15 MPCore處理器是目前ARM處理器中性能最高的(在本書即將完成時,ARM已推出了更新的Cortex-A57),并且與本書中描述的其他ARM處理器的應(yīng)用程序是兼容的。
Cortex-A15 MPCore處理器推出了一些新功能,包括支持完整的硬件虛擬化和大物理地址擴(kuò)展(LPAE),這就可以尋址高達(dá)1 TB的內(nèi)存,其框圖如圖所示。
Cortex-A15 MPCore處理器具有以下特點(diǎn):
- ● 無序的超標(biāo)量流水線;
- ● 緊密耦合的低延遲的二級高速緩存(高達(dá)4MB的大小);
- ● 改進(jìn)的浮點(diǎn)和NEON媒體性能;
- ● 全硬件虛擬化;
- ● 尋址高達(dá)1 TB內(nèi)存的大物理地址擴(kuò)展(LPAE);
- ● 容錯性的糾錯能力和軟件故障恢復(fù);
- ● 通過AMBA4總線技術(shù)形成了多個相干的多核處理器集;
- ● AMBA4緩存一致性互連(CCI),允許多個Cortex-A15 MPCore處理器之間的全緩存一致。
高通公司的Scorpion
設(shè)計兼容ARMv7-A指令集結(jié)構(gòu)的處理器的不只有ARM公司。2005年,美國高通公司宣布,在ARM的許可下創(chuàng)建了它自己的實現(xiàn),用了同樣的名稱——Scorpion。
Scorpion處理器是高通公司Snapdragon平臺的一部分,其中包含了上網(wǎng)本、智能手機(jī)或其他移動互聯(lián)網(wǎng)設(shè)備的主要功能。
高通面向公眾提供了較少的信息,盡管它提到了Scorpion與Cortex-A8處理器有很多相似點(diǎn),也是基于ARMv7-A體系結(jié)構(gòu)的實現(xiàn),ARMv7-A——超標(biāo)量和雙發(fā),以及對VFP和NEON(在高通的新聞稿上稱為VeNum媒體處理引擎)的支持。
然而相比之下還是有很多差異的,Scorpion可以在其NEON執(zhí)行中并行處理128位數(shù)據(jù),具有1個13級的加載/存儲流水線和2個整數(shù)流水線,其中一個是10級,只能執(zhí)行簡單的算術(shù)運(yùn)算指令(如加減),而另一種是12級,可以執(zhí)行所有的數(shù)據(jù)處理操作,包括乘法。
Scorpion還有1個23級的floating-point/SIMD的流水線和VFPv3操作流水線。
這點(diǎn)內(nèi)容確實有點(diǎn)老了,現(xiàn)在大多數(shù)都是基于v8的架構(gòu)。但是技術(shù)都是向后兼容的,所以也不用太過糾結(jié)。文章來源:http://www.zghlxwxcb.cn/news/detail-789889.html
到了這里,關(guān)于【ARM學(xué)習(xí)】Cortex- A系列程序員學(xué)習(xí)指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!