ARM芯片名字关系
前言
??一款ARM芯片相關的名字太多,經常搞不清楚都分別代表什么,本文就是梳理一下名字的含義層次并著重回顧一下芯片架構。
??BCM2837是產品的名字,是博通公司的一款SoC(CPU+RAM等外設都封裝在一塊SoC芯片里),這款SoC包含的CPU架構是ARMv8,這個CPU的名字是ARM Cortex-A53,aarch64和aarch32是ARMv8架構處理器的兩種可選的執行狀態,aarch64執行狀態下支持A64指令集,aarch32和傳統的32位指令集被稱為A32指令集
| BCM2837 | 博通的SoC產品名 | STM32、I.MX6ULL |
| ARMv8-A | CPU芯片的架構 | ARMv7 |
| Cortex A53 | CPU芯片的名字,也可以說BCM2837的內核是Cortex A53(有時候就簡稱A53) | ARM9、Cortex M3 |
| aarch64 | CPU可以運行的64位執行狀態 | aarch32 |
32位舊有架構
- ARMv1是1985開發的樣本,首顆量產的是1986年的ARMv2架構
- ARM7是ARMv4架構,ARM9是ARMv5架構,ARM11是ARMv6架構。這些都是2004年以前老架構芯片
32位Cortex架構
- 2004年到了ARMv7架構的時候開始以Cortex來命名,并分成Cortex-A、Cortex-R、Cortex-M三個系列。 三大系列分工明確:“A”系列面向尖端的基于虛擬內存的操作系統和用戶應用; “R”系列針對實時系統; “M”系列對微控制器[1]。
- NEON技術從ARMv7開始被采用,目前可以在ARM Cortex-A和Cortex-R系列處理器中采用。
NEON在Cortex-A7、Cortex-A12、Cortex-A15處理器中被設置為默認選項,但是在其余的ARMv7 Cortex-A系列中是可選項。NEON與VFP共享了同樣的寄存器,但它具有自己獨立的執行流水線[2]。
64位架構
- armv8架構的64位芯片既可以選擇運行aarch64執行狀態也可以選擇運行aarch32執行狀態,并且ARMv8架構的芯片支持32位的程序在64位的系統里運行
- Armv7-A, Armv8-A AArch32 and Armv8-A AArch64 指令集之間的關系
時間線及幾個常見芯片
- STM32F103芯片是Cortex-M3內核,ARMV7-M指令集架構
- STM32F407芯片是Cortex-M4內核,ARMv7-ME指令集架構
- 樹莓派RPI A+/B+/Zero的BCM2835帶的是ARM11內核
- 樹莓派RPI2 B的BCM2836帶的是Cortex A7內核
- 樹莓派RPI3 B/B+的BCM2837帶的是Cortex A53內核
- 樹莓派RPI4 B的BCM2711帶的是Cortex A72內核
- I.MX6ULL是Cortex A7內核
- Tegra X2(Jetson Tx2的SoC )帶四核Cortex A57+雙核Denver 2(只知道是ARMv8架構不知道具體哪個芯片,具體不太懂沒研究過)
- 海思的麒麟(Kirin)960、970是Cortex A73
參考資料
[1]https://zhuanlan.zhihu.com/p/92315825
[2]https://zyddora.github.io/2016/02/28/neon_1/
[3]https://zh.wikipedia.org/wiki/ARM%E6%9E%B6%E6%A7%8B
總結
- 上一篇: 用什么软件可以提高视频批量剪辑的效率
- 下一篇: 有感于王银的博文