ARM Cortex-A 內核有別于ARM Cortex-M 和 Cortex-R 處理器。Cortex-A 內部包含大量的硬件資源,如內存管理單元MMU,可以直接運行Linux、Android、WinCE等操作系統。而?Cortex-M 和 Cortex-R 僅用以運行一些微內核的 RTOS 實時操作系統。當然,這不是說明Cortex-A比他們更強,而是使用領域不一樣。
- ?Cortex-A 和 Cortex-A50 系列?- 面向開放式操作系統的高性能處理器
- Cortex-R 系列- 面向實時應用的卓越性能
- Cortex-M?系列?-?面向具有確定性的微控制器應用的成本功耗敏感型解決方案
ARM Cortex-A 內核基于ARMv7-A架構,基本上都可以支持ARM、Thumb-2、Thumb指令集、Java加速擴展的Jazelle技術、ThustZone的安全擴展、針對浮點FPU的VFP硬件擴展、DSP & SIMD 擴展、并行多數據SIMD的NEON多媒體處理器擴展、主流的嵌入式OS(Linux、Android、Windows Mobile、Windows Phone、Symbian)、以及支持分支預測branch prediction。
但各處理器在VFP/NEON的類型、半精度浮點(16-bit half precision floating-point)的支持、多核MPCore、流水線pipeline、單MHz處理性能、L1/L2 cache控制器、亂序執行、指令dual-issue并發等方面有略有不同。
Cortex-A5 處理器

ARM Cortex-A5處理器結構圖
ARM Cortex-A5 處理器是體積最小、能效最高、成本最低的Cortex-A應用處理器,能夠向最廣泛的設備提供 Internet 訪問:從低成本的入門級智能手機、特色手機和智能移動終端到應用廣泛的嵌入式、消費類和工業設備。
Cortex-A5?處理性每個內核達?1.57 DMIPS/MHz,雖然在能性相對于其他 Cortex-A 略差,如只相當于 Cortex-A8 的 80% 性能,Cortex-A15的一半性能,但芯片面積和功耗特性相當出色。Cortex-A5可以支持1~4核,支持雙發 dual issue 以及分支預測 branch prediction,NEON和VFP的硬件可選。
Cortex-A5 處理器可為現有的 ARM926EJ-S 和?ARM1176JZ-S 處理器設計提供高價值的遷移途徑。它可實現比ARM1176JZ-S 更好的性能,比 ARM926EJ-S 更好的功效和能效,以及 100% 的 Cortex-A 兼容性。Cortex-A5 處理器在指令以及功能方面與更高性能的 Cortex-A8、Cortex-A9 和 Cortex-A15 處理器完全兼容,直到操作系統級別都是如此。Cortex-A5 處理器還保持與 Classic ARM 處理器(包括 ARM926EJ-S、ARM1176JZ-S 和 ARM7TDMI)的向后應用兼容性。
Cortex-A7 處理器

ARM Cortex-A7處理器結構圖
ARM?Cortex-A7 MPCore 處理器是 ARM 迄今為止開發的最有效的應用程序處理器,它顯著擴展了 ARM 在未來入門級智能手機、平板電腦以及其他高級移動設備方面的低功耗領先地位。
Cortex-A7 處理器的架構和功能集與 Cortex-A15 處理器完全相同,不同之處在于,Cortex-A7 處理器的微架構側重于提供最佳能效,因此這兩種處理器可在 big.LITTLE 配置中協同工作,從而提供高性能與超低功耗的終極組合。ARM?Cortex-A7處理器與其他 Cortex-A 系列處理器完全兼容,并整合了高性能 Cortex-A15 處理器的所有功能,包括虛擬化、大物理地址擴展 (LPAE) NEON 高級 SIMD 和 AMBA 4 ACE 一致性。
Cortex-A7 處理器支持單處理器群集中的 1-4X SMP,通過 AMBA 4 技術實現多個一致的 SMP 處理器群集。在性能方面,單個 Cortex-A7 處理器的能效是 ARM Cortex-A8 處理器的 5 倍,性能提升 50%,而尺寸僅為后者的五分之一,而功耗類似于高效 Cortex-A5。
Cortex-A8 處理器

ARM Cortex-A8處理器結構圖
ARM ?Cortex-A8 處理器最早基于 ARMv7 架構,能夠將速度從 600MHz 提高到 1GHz 以上。Cortex-A8 處理器可以滿足需要在 300mW 以下運行的移動設備的功耗優化要求,以及需要 2000 Dhrystone MIPS 的消費類應用領域的性能優化要求。
Cortex-A8 處理性每個內核達?2.0 DMIPS/MHz,不支持多核,僅單核。
由于 Cortex-A8 支持的浮點VFP運算非常有限,其 VFP 的速度非常慢,往往相同的浮點運算,其速度是 Cortex-A9的1/10 。Cortex-A8能并發某些 NEON 指令(如 NEON 的 load/store 和其他的 NEON 指令),而 Cortex-A9 因為NEON位寬限制不能并發。Cortex-A8的NEON和ARM是分開的,即ARM核和NEON核的執行流水線分開,NEON訪問ARM寄存器很快,但是ARM端需要NEON寄存器的數據會非常慢。
Cortex-A9 處理器

ARM Cortex-A9處理器結構圖
ARM Cortex-A9 處理器是高能效、高性能、低功耗、成本敏感型設備的首選。Cortex-A9 可用作單處理器解決方案,與 ARM Cortex-A8 解決方案相比,它使整體性能提升 50% 以上。Cortex-A9 MPCore 提供多達 4 個處理器。
Cortex-A9 每個內核?2.50 DMIPS/MHz,支持 1-4 個多核核,以及單核版本。
Cortex-A9 微型架構支持 16、32 或 64KB 4 路聯合 L1 cache 的配置,以及通過可選的L2 cache 控制器而獲得的高達 8MB 的 L2 cache 配置。可擴展的多核和單處理器解決方案提供廣泛的靈活性,并分別適用于各種應用和市場。
Cortex-A15 處理器

ARM Cortex-A15處理器結構圖
ARM?Cortex-A15 MPCore 處理器是目前適用于高度互聯設備的高性能引擎。該處理器實現了前所未有的靈活性和處理能力。與 ARM 傳統產品一樣,該處理器在設計上采用了先進的能耗降低技術,在 ARM 的各種新市場和現有市場上成就了卓越的產品,這些市場包括移動計算、高端數碼家電、服務器和無線基礎結構。
Cortex-A15 處理器具有無序超標量流水線,帶有緊密耦合的低延遲 2 級 cache,該?cache 的大小最高可達 4MB。浮點和NEON? 媒體性能方面的其他改進使設備能夠為消費者提供下一代用戶體驗,并為 Web 基礎結構應用提供高性能計算。
為了實現最好的性能,Cortex-A15 處理器具有多指令執行功能,無序超標量流水線,帶有緊密耦合低延遲的且受 ECC 保護的 2 級 cache,該 cache 的大小最高可達 4MB。Cortex-A15 處理器現在適用于?1TB 的物理內存,從而能夠滿足服務器與網絡應用的需求。
Cortex-A17 處理器

ARM Cortex-A17處理器
Cortex-A17 MPCore處理器是目前Cortex-A系列中性能最高的處理器。Cortex-A17現在已經取代Cortex-A12,不過它并非64位ARMv8架構,仍是32位ARMv7-A。
Cortex-A17微架構和Cortex-A12完全相同,但是在Cortex-A12架構基礎上改進了外部互聯,引入了新的一致性總線AMBA4 ACE(原來是AMBA4 AXI),可以更快速地連接內存控制器,從而改善性能和能效。
而得益于這個新的總線,Cortex-A17 可以支持多核心 SoC 的完整內存一致性操作,能夠參與 big.LITTLE 雙架構混合方案,比如兩個Cortex-A17搭配兩個Cortex-A7。Cortex-A17將肩負起Cortex-A9下一代的重任,相比?Cortex-A9,Cortex-A17性能提升最多60%。
Cortex-A處理器對比表
以下是這幾款ARM Cortex-A處理器的對比表格,從中我們可以清晰的看出他們之間的區別。
內核 | Cortex-A5 | Cortex-A7 | Cortex-A8 | Cortex-A9 | Cortex-A15 | Cortex-A17 |
發布時間 | 2009年12月 | 2011年10月 | 2006年7月 | 2008年3月 | 2011年4月 | 2014年2月 |
時鐘頻率 | ~1GHz | ~1.5GHz on 28nm | ~1GHz on 65nm | ~2GHz on 40nm | ~2.5GHz on 28nm | ?2GHz+ on 28nm |
執行順序 | 順序 | 順序 | 順序 | 亂序 | 亂序 | ?亂序 |
多核支持 | 1 ~ 4 | 1 ~ 4 | 1 (只單核) | 1 ~ 4 | 1 ~ 4 | ?1 ~ 4 |
運算性能 | 1.57 DMIPS/MHz | 1.9 DMIPS/MHz | 2 DMIPS/MHz | 2.5 DMIPS/MHz | 3.5 DMIPS/MHz | ?4.5 DMIPS/MHz |
VFP/NEON支持 | VFPv4/NEON | VFPv4/NEON | VFPv3/NEON | VFPv3/NEON | VFPv4/NEON | ?VFPv4/NEON |
GPU | Mali-400 | Mali-400 | Mali-400 | Mali-T624 | Mali-T600 | Mali-T720 Mali-V500 Mali-DP500 |
16位半精度 | 是 | 是 | 否 | 是 | 是 | ?是 |
FP/NEON 寄存器重命名 | 否 | 否 | 否 | 否 | 是 | ?是 |
GP寄存器重命名 | 否 | 否 | 否 | 是 | 是 | ?是 |
硬件除法器 | 否 | 是 | 否 | 否 | 是 | ?是 |
40位物理地址LPAE | No | Yes | No | No | yes | ?yes |
硬件虛擬化 | No | Yes | No | No | Yes | ?yes |
big.LITTLE | No | LITTLE | No | No | Big | ?Big |
融合的MAC乘累加 | 是 | 是 | 否 | 否 | 是 | ?是 |
流水線級數 | 8 | 8 | 13 | 9 ~?12 | 15+ | ?11+ |
指令譯碼 | 1 | Partial dual issue | 2 (dual-issue) | 2 (dual-issue) | 3 | ?3 |
返回堆棧stack條目 | 4 | 8 | 8 | 8 | 48 | ?48 |
浮點運算單元FPU | 可選 | 可選 | Yes | 可選 | 可選 | ?可選 |
AMBA總線寬度 | 64-bit I/FAMBA 3 | 128-bit I/FAMBA 4 | 64 or 128-bit I/FAMBA 3 | 2× 64-bit I/FAMBA 3 | 128-bit | ?128-bit |