Cortex-A7 MPCore 簡介與處理器運行模型

Cortex-A7 MPcore 處理器支持 1~4 核,通常是和 Cortex-A15 組成 big.LITTLE 架構的,Cortex-A15 作為大核負責高性能運算,比如玩遊戲啥的,Cortex-A7 負責普通應用,因為 Cortex-A7 省電。Cortex-A7 本身性能也不弱,不要看它叫做 Cortex-A7 但是它可是比 Cortex-A8 性能要強大,而且更省電。ARM 官網對於Cortex-A7 的說明如下:

“在 28nm 工藝下,Cortex-A7 可以運行在 1.2~1.6GHz,並且單核面積不大於 0.45mm2(含有浮點單元、NEON 和 32KB 的 L1 緩存),在典型場景下功耗小於 100mW, 這使得它非常適合對功耗要求嚴格的移動設備,這意味著 Cortex-A7 在獲得與 Cortex-A9 相似性能的情況下,其功耗更低”。

Cortex-A7 MPCore 支持在一個處理器上選配 1~4 個內核,Cortex-A7 MPCore 多核配置如圖所示:

Cortex-A7 MPCore 簡介與處理器運行模型

多核配置圖

Cortex-A7 MPCore 的 L1 可選擇 8KB、16KB、32KB、64KB,L2 Cache 可以不配,也可以選擇 128KB、256KB、512KB、1024KB。I.MX6UL 配置了 32KB 的 L1 指令 Cache 和 32KB 的L1 數據 Cache,以及 128KB 的L2 Cache。Cortex-A7MPCore 使用 ARMv7-A 架構,主要特性如下:

①、SIMDv2 擴展整形和浮點向量操作。

②、提供了與 ARM VFPv4 體系結構兼容的高性能的單雙精度浮點指令,支持全功能的IEEE754。

③、支持大物理擴展(LPAE),最高可以訪問 40 位存儲地址,也就是最高可以支持 1TB 的內存。

④、支持硬件虛擬化。

⑤、支持Generic Interrupt Controller(GIC)V2.0。

⑥、支持NEON,可以加速多媒體和信號處理算法。

以前的 ARM 處理器有 7 中運行模型:User、FIQ、IRQ、Supervisor(SVC)、Abort、Undef和 System,其中 User 是非特權模式,其餘 6 中都是特權模式。但新的 Cortex-A 架構加入了TrustZone 安全擴展,所以就新加了一種運行模式:Monitor,新的處理器架構還支持虛擬化擴展,因此又加入了另一個運行模式:Hyp,所以 Cortex-A7 處理器有 9 中處理模式,如圖所示:

Cortex-A7 MPCore 簡介與處理器運行模型

九種運行模式

在上圖中,除了User(USR)用戶模式以外,其它 8 種運行模式都是特權模式,在特權模式下,程序可以訪問所有的系統資源。這幾個運行模式可以通過軟件進行任意切換,也可以通過中斷或者異常來進行切換。大多數的程序都運行在用戶模式,用戶模式下是不能訪問系統所有資源的,有些資源是受限的,要想訪問這些受限的資源就必須進行模式切換。但是用戶模式是不能直接進行切換的,用戶模式下需要藉助異常來完成模式切換,當要切換模式的時候,應用程序可以產生異常,在異常的處理過程中完成處理器模式切換。當中斷或者異常發生以後,處理器就會進入到相應的異常模式種,每一種模式都有一組寄存器供異常處理程序使用,這樣的目的是為了保證在進入異常模式以後,用戶模式下的寄存器不會被破壞。

如果學過 STM32 和UCOS、FreeRTOS 就會知道,STM32 只有兩種運行模式,特權模式和非特權模式,但是Cortex-A 就有 9 種運行模式。


分享到:


相關文章: