Cortex-A7處理器的功能特性介紹
Cortex-A7 處理器是一種由ARM公司推出的基于ARMv7-A架構(gòu)的高能效處理器,從2012年底開始被廣泛用于低成本、全功能入門級(jí)智能手機(jī)。ARM Cortex?-A7 MPCore? 處理器是 ARM 迄今為止開發(fā)的最有效的應(yīng)用處理器,它顯著擴(kuò)展了 ARM 在未來入門級(jí)智能手機(jī)、平板電腦以及其他高級(jí)移動(dòng)設(shè)備方面的低功耗領(lǐng)先地位。Cortex-A7 處理器的體系結(jié)構(gòu)和功能集與 Cortex-A15 處理器完全相同,不同之處在于,Cortex-A7 處理器的微體系結(jié)構(gòu)側(cè)重于提供最佳能效,因此這兩種處理器可在 big.LITTLE 配置中協(xié)同工作,從而提供高性能與超低功耗的終極組合。
該處理器與為其他Cortex-A系列處理器開發(fā)的程序完全兼容,并借鑒了高性能Cortex-A15處理器的設(shè)計(jì),采用了包括虛擬化、大物理地址擴(kuò)展 (LPAE) NEON 高級(jí) SIMD 和 AMBA 4 ACE 一致性等全新技術(shù)。并著重考慮了性能與功耗間的平衡。采用了28nm工藝的單個(gè)Cortex-A7 處理器的能源效率是65nm工藝下的ARM Cortex-A8 處理器(被用于2010-2012年間的的許多流行智能手機(jī))的5倍,性能提升50%,而尺寸僅為后者的五分之一。相對(duì)于2011年主流智能手機(jī),2013年上市的采用Cortex-A7處理器的手機(jī),其CPU性能提升可高達(dá)20%而功耗降低60%。
事實(shí)上,Cortex-A7處理器的體系結(jié)構(gòu)和功能集與Cortex-A15處理器完全相同,不同這處在于,Cortex-A7處理器的微體系結(jié)構(gòu)側(cè)重于提供最佳能效,因此這兩種處理器可在big.LITTLE(大小核大小核心伴侶結(jié)構(gòu))配置中協(xié)同工作,從而提供高性能與超低功耗的終極組合。單個(gè)Cortex-A7處理器的能源效率是ARM Cortex-A8處理器的5倍,性能提升50%,而尺寸僅為后者的五分之一。簡(jiǎn)單點(diǎn)說Cortex-A7處理器的特點(diǎn)是在保證性能的基礎(chǔ)上提供了出色的低功耗表現(xiàn)。
Cortex-A 處理器運(yùn)行模型
以前的 ARM 處理器有 7 中運(yùn)行模型: User、 FIQ、 IRQ、 Supervisor(SVC)、 Abort、 Undef和 System,其中 User 是非特權(quán)模式,其余 6 中都是特權(quán)模式。但新的 Cortex-A 架構(gòu)加入了TrustZone 安全擴(kuò)展,所以就新加了一種運(yùn)行模式: Monitor,新的處理器架構(gòu)還支持虛擬化擴(kuò)展,因此又加入了另一個(gè)運(yùn)行模式: Hyp,所以 Cortex-A7 處理器有9 種處理模式(上電后默認(rèn)進(jìn)入SVC模式)。
除了 User(USR)用戶模式以外,其它 8 種運(yùn)行模式都是特權(quán)模式。這幾個(gè)運(yùn)行模式可以通過軟件進(jìn)行任意切換,也可以通過中斷或者異常來進(jìn)行切換。大多數(shù)的程序都運(yùn)行在用戶模式,用戶模式下是不能訪問系統(tǒng)所有資源的,有些資源是受限的,要想訪問這些受限的資源就必須進(jìn)行模式切換。但是用戶模式是不能直接進(jìn)行切換的,用戶模式下需要借助異常來完成模式切換,當(dāng)要切換模式的時(shí)候,應(yīng)用程序可以產(chǎn)生異常,在異常的處理過程中完成處理器模式切換。
當(dāng)中斷或者異常發(fā)生以后,處理器就會(huì)進(jìn)入到相應(yīng)的異常模式種,每一種模式都有一組寄存器供異常處理程序使用,這樣的目的是為了保證在進(jìn)入異常模式以后,用戶模式下的寄存器不會(huì)被破壞。
corter-a7一共有9種工作模式,分別如下:
1.用戶模式(usr):Linux系統(tǒng)應(yīng)用層程序都在該模式下執(zhí)行,是非特權(quán)模式,不能進(jìn)行處理器的模式切換。
2.快速中斷模式(fiq):高優(yōu)先級(jí)的中斷模式,該模式下能快速地響應(yīng)事件,有一些專業(yè)的寄存器,不需要備份,從而能快速地相應(yīng)。
3.外部中斷模式(irq):一個(gè)低優(yōu)先級(jí)的中斷模式,也是一個(gè)標(biāo)準(zhǔn)模式,Linux內(nèi)核終中斷通常都是使用該模式進(jìn)行中斷處理。
4.特權(quán)模式(svc):在系統(tǒng)復(fù)位或者是軟中斷觸發(fā)會(huì)進(jìn)入該模式,由該模式進(jìn)行處理器模式的切換。
5.數(shù)據(jù)訪問中止模式(abt):當(dāng)發(fā)送存取異常的時(shí)候會(huì)進(jìn)入該模式。
6.未定義指令中止模式(und):當(dāng)CPU執(zhí)行到一條不能識(shí)別的指令時(shí)會(huì)進(jìn)入該模式,例如再ARM的板子上執(zhí)行x86結(jié)構(gòu)的程序就會(huì)進(jìn)入該模式。
7.系統(tǒng)模式(sys):linux內(nèi)核就運(yùn)行在該模式下,系統(tǒng)模式和用戶模式共用一套寄存器。
8.監(jiān)控模式(mon):主要就是用來做安全和非安全模式之間的切換的。
9.虛擬化監(jiān)控模式(hpy):用于擴(kuò)展虛擬機(jī)的的。
Cortex-A7內(nèi)核存儲(chǔ)
STM32P1A有兩級(jí)cache分別為L(zhǎng)1和L2;L1又稱為一級(jí)緩存,在這級(jí)cache中又分為1個(gè)32KB的數(shù)據(jù)cache和1個(gè)32KB的指令cache;L2又稱為二級(jí)緩存其容量為256KB;
此外Cortex-A7所使用的架構(gòu)是哈佛架構(gòu),即內(nèi)存中數(shù)據(jù)和指令是分開存儲(chǔ)的。