作者 | 不可說
出品 | 汽車電子與軟件
#01 ARM處理器
當(dāng)前,在眾多負責(zé)車輛核心控制功能的控制器中,其內(nèi)部所采用的處理器有很大一部分均基于ARM架構(gòu)。這一架構(gòu)憑借其出色的能效比、廣泛的生態(tài)系統(tǒng)支持以及高度的靈活性,在汽車電子領(lǐng)域占據(jù)了舉足輕重的地位。鑒于此,本文旨在簡要介紹ARM架構(gòu)處理器的特點,供大家探討交流。
ARM是英國的一家公司,設(shè)計了低功耗成本的第一款RISC微處理器,即ARM處理器(Advanced RISC Machines)。在經(jīng)典處理器ARM11以后,ARM公司的產(chǎn)品開始改用Cortex命名,并分成A、R和M三類,旨在為各種不同的市場提供服務(wù)。Cortex系列屬于ARMv7架構(gòu),這是ARM公司在當(dāng)時最新的指令集架構(gòu)。因此,可以說Cortex是ARM公司推出的一個系列處理器的名稱,其起源可以追溯到ARM公司的處理器設(shè)計和發(fā)展歷程。
#02 ARM指令集
先大概解釋一個概念,什么是芯片處理器的指令集?指令集主要是指CPU硬件和軟件之間的接口描述,它本質(zhì)上是一段二進制機器碼。CPU只能識別并執(zhí)行這些機器碼指令,而機器碼本身是一串無意義的字符串,對于程序員來說很難理解和使用。因此,人們發(fā)明了匯編語言等高級編程語言,這些語言與機器碼有一一對應(yīng)的關(guān)系,使得程序員能夠更方便地編寫和調(diào)試程序。
指令集可以分為多種類型,其中比較有名的是復(fù)雜指令集(CISC)和精簡指令集(RISC)。
- 復(fù)雜指令集(CISC):這類指令集包含大量的指令,且每條指令的功能較為復(fù)雜。X86指令集就是一種典型的CISC指令集。
- 精簡指令集(RISC):與CISC相對,RISC指令集包含的指令數(shù)量較少,且每條指令的功能相對簡單。ARM指令集是RISC指令集的一個代表,它廣泛應(yīng)用于移動設(shè)備、嵌入式系統(tǒng)等領(lǐng)域。
我們還經(jīng)常聽見“ARM架構(gòu)的芯片”之類的詞匯,其實這個架構(gòu)指的就是某一個處理器所使用的具體指令集。目前市場上主流的芯片架構(gòu)有 X86、ARM、RISC-V和MIPS四種。
在大部分場合,架構(gòu)等于指令集。例如,如果一個處理器是基于ARMv7架構(gòu)的,那么它就使用ARMv7指令集。指令集架構(gòu)是計算機體系架構(gòu)的一部分,它規(guī)定了處理器能夠識別并執(zhí)行的指令集合。ARM架構(gòu)還有v8、v9版本,v7是較早的版本,也是目前廣泛應(yīng)用的ARM架構(gòu)版本之一,從ARMv7架構(gòu)被分為A系列(Application Processors,用于高性能產(chǎn)品)、R系列(Real-time Processors,用于實時系統(tǒng))和M系列(Microcontroller Processors,用于微控制器);ARMv9是ARM架構(gòu)的最新版本,這三個版本指令集的對比大致如下:
ARMv7:
- 它引入了新的指令集,如Thumb-2,這是一種混合了32位和16位指令的新指令集,既能提供高性能,又能節(jié)省存儲空間。
- ARMv7還支持硬件浮點運算(VFPv3),提高了處理器處理浮點數(shù)的能力。
ARMv8:
- 這是ARM首次引入的64位架構(gòu)版本。
- 它同時支持64位和32位應(yīng)用,提供了更大的地址空間、更多寄存器和增強的安全特性。
- ARMv8引入了新的指令集AArch64,用于執(zhí)行64位操作。
- 該架構(gòu)還改進了浮點和SIMD(單指令多數(shù)據(jù))的支持,包括新的浮點運算指令和為多媒體和數(shù)據(jù)處理優(yōu)化的新SIMD指令。
- ARMv8還引入了硬件虛擬化支持,提高了在虛擬環(huán)境中運行應(yīng)用的性能。
ARMv9:
- ARMv9對之前的版本進行了一系列優(yōu)化和改進,以提高處理器的性能和效率。
- 它引入了新的SVE2(Scalable Vector Extension 2)技術(shù),這是一種向量運算技術(shù),可以顯著提高處理器處理機器學(xué)習(xí)和人工智能任務(wù)的能力。
- ARMv9還增強了安全功能,引入了新的Realm管理架構(gòu),以更有效地防止各種網(wǎng)絡(luò)攻擊和數(shù)據(jù)泄露。
- 該架構(gòu)對虛擬化支持進行了改進,使得在云計算和其他高性能計算應(yīng)用中的虛擬化更加高效。
直白的來講,指令集是CPU與軟件之間的橋梁,使得軟件能夠正確地控制CPU執(zhí)行各種操作。同時,指令集也決定了CPU的性能和功耗等關(guān)鍵指標(biāo)。不同的指令集具有不同的特點和優(yōu)勢,適用于不同的應(yīng)用場景。
車載控制器中常用的ARM Cortex系列芯片基本屬于ARMv7、v8架構(gòu)。
ARM Cortex系列芯分為A、R、M系列,這也是我們經(jīng)常聽到別人講的芯片A核、M核的來源。

Cortex-A是面向移動計算、智能手機和服務(wù)器等市場的高端處理器,運行頻率高(>1GHz),支持Linux、Android、Windows等操作系統(tǒng)所需的內(nèi)存管理單元。在車載領(lǐng)域可以用于座艙芯片、智駕芯片、中央計算平臺芯片等。
Cortex-R用于實時應(yīng)用,如車身控制器、汽車地盤系統(tǒng)和動力系統(tǒng)控制等,不支持內(nèi)存管理單元但具備其他存儲器功能,運行頻率較高(200MHz到>1GHz),響應(yīng)延遲低,支持實時操作系統(tǒng)而非完整Linux和Windows。
Cortex-M設(shè)計小巧且能效高,時鐘頻率較低但部分可達200Mhz以上,新的Cortex-M系列易于使用,在單片機和深度嵌入式系統(tǒng)中廣受歡迎,也可以用于車身控制等,只是性能較Cortex-R差一點。

不過芯弛推出的主要用于車控、域控的芯片E3系列,沒有采用Cortex-A,而是Cortex-R5及Cortex-R52+的形式,這是因為E3 MCU是針對汽車安全相關(guān)應(yīng)用設(shè)計的新一代高性能微控制器產(chǎn)品,根據(jù)此需求并未選擇Cortex-A,而是實時性好、安全性高的Cortex-R系列處理器。



瑞薩的R-Car H3e(-2G) 是一款用于高端計算的汽車SOC,核心處理器包含了四個Cortex-A57、四個Cortex-A53、雙核鎖步的Cortex-R7,計算性能非常強大,可準(zhǔn)確實時地處理來自汽車傳感器的大量信息。它的應(yīng)用非常廣泛,例如車載娛樂信息系統(tǒng)和集成駕駛艙。它符合 ISO 26262(ASIL-B) 汽車功能安全標(biāo)準(zhǔn)和信息安全要求。2GHz 運行速度的 (H3e-2G) 在提高處理能力的同時保持硬件和軟件兼容性。
總的來說,ARM架構(gòu)以其低功耗、高性能和可定制化的特點,在汽車電子領(lǐng)域發(fā)揮著重要作用。隨著技術(shù)的不斷發(fā)展和創(chuàng)新,ARM架構(gòu)仍然有著巨大的發(fā)展空間。通過選擇合適的核心、優(yōu)化代碼、使用硬件加速和優(yōu)化存儲器訪問等策略,可以進一步提高系統(tǒng)的性能和功耗效率,滿足各種應(yīng)用場景的需求。