作者 | 不可說(shuō)
出品 | 汽車電子與軟件
#01 ARM處理器
當(dāng)前,在眾多負(fù)責(zé)車輛核心控制功能的控制器中,其內(nèi)部所采用的處理器有很大一部分均基于ARM架構(gòu)。這一架構(gòu)憑借其出色的能效比、廣泛的生態(tài)系統(tǒng)支持以及高度的靈活性,在汽車電子領(lǐng)域占據(jù)了舉足輕重的地位。鑒于此,本文旨在簡(jiǎn)要介紹ARM架構(gòu)處理器的特點(diǎn),供大家探討交流。
ARM是英國(guó)的一家公司,設(shè)計(jì)了低功耗成本的第一款RISC微處理器,即ARM處理器(Advanced RISC Machines)。在經(jīng)典處理器ARM11以后,ARM公司的產(chǎn)品開(kāi)始改用Cortex命名,并分成A、R和M三類,旨在為各種不同的市場(chǎng)提供服務(wù)。Cortex系列屬于ARMv7架構(gòu),這是ARM公司在當(dāng)時(shí)最新的指令集架構(gòu)。因此,可以說(shuō)Cortex是ARM公司推出的一個(gè)系列處理器的名稱,其起源可以追溯到ARM公司的處理器設(shè)計(jì)和發(fā)展歷程。
#02 ARM指令集
先大概解釋一個(gè)概念,什么是芯片處理器的指令集?指令集主要是指CPU硬件和軟件之間的接口描述,它本質(zhì)上是一段二進(jìn)制機(jī)器碼。CPU只能識(shí)別并執(zhí)行這些機(jī)器碼指令,而機(jī)器碼本身是一串無(wú)意義的字符串,對(duì)于程序員來(lái)說(shuō)很難理解和使用。因此,人們發(fā)明了匯編語(yǔ)言等高級(jí)編程語(yǔ)言,這些語(yǔ)言與機(jī)器碼有一一對(duì)應(yīng)的關(guān)系,使得程序員能夠更方便地編寫和調(diào)試程序。
指令集可以分為多種類型,其中比較有名的是復(fù)雜指令集(CISC)和精簡(jiǎn)指令集(RISC)。
- 復(fù)雜指令集(CISC):這類指令集包含大量的指令,且每條指令的功能較為復(fù)雜。X86指令集就是一種典型的CISC指令集。
- 精簡(jiǎn)指令集(RISC):與CISC相對(duì),RISC指令集包含的指令數(shù)量較少,且每條指令的功能相對(duì)簡(jiǎn)單。ARM指令集是RISC指令集的一個(gè)代表,它廣泛應(yīng)用于移動(dòng)設(shè)備、嵌入式系統(tǒng)等領(lǐng)域。
我們還經(jīng)常聽(tīng)見(jiàn)“ARM架構(gòu)的芯片”之類的詞匯,其實(shí)這個(gè)架構(gòu)指的就是某一個(gè)處理器所使用的具體指令集。目前市場(chǎng)上主流的芯片架構(gòu)有 X86、ARM、RISC-V和MIPS四種。
在大部分場(chǎng)合,架構(gòu)等于指令集。例如,如果一個(gè)處理器是基于ARMv7架構(gòu)的,那么它就使用ARMv7指令集。指令集架構(gòu)是計(jì)算機(jī)體系架構(gòu)的一部分,它規(guī)定了處理器能夠識(shí)別并執(zhí)行的指令集合。ARM架構(gòu)還有v8、v9版本,v7是較早的版本,也是目前廣泛應(yīng)用的ARM架構(gòu)版本之一,從ARMv7架構(gòu)被分為A系列(Application Processors,用于高性能產(chǎn)品)、R系列(Real-time Processors,用于實(shí)時(shí)系統(tǒng))和M系列(Microcontroller Processors,用于微控制器);ARMv9是ARM架構(gòu)的最新版本,這三個(gè)版本指令集的對(duì)比大致如下:
ARMv7:
- 它引入了新的指令集,如Thumb-2,這是一種混合了32位和16位指令的新指令集,既能提供高性能,又能節(jié)省存儲(chǔ)空間。
- ARMv7還支持硬件浮點(diǎn)運(yùn)算(VFPv3),提高了處理器處理浮點(diǎn)數(shù)的能力。
ARMv8:
- 這是ARM首次引入的64位架構(gòu)版本。
- 它同時(shí)支持64位和32位應(yīng)用,提供了更大的地址空間、更多寄存器和增強(qiáng)的安全特性。
- ARMv8引入了新的指令集AArch64,用于執(zhí)行64位操作。
- 該架構(gòu)還改進(jìn)了浮點(diǎn)和SIMD(單指令多數(shù)據(jù))的支持,包括新的浮點(diǎn)運(yùn)算指令和為多媒體和數(shù)據(jù)處理優(yōu)化的新SIMD指令。
- ARMv8還引入了硬件虛擬化支持,提高了在虛擬環(huán)境中運(yùn)行應(yīng)用的性能。
ARMv9:
- ARMv9對(duì)之前的版本進(jìn)行了一系列優(yōu)化和改進(jìn),以提高處理器的性能和效率。
- 它引入了新的SVE2(Scalable Vector Extension 2)技術(shù),這是一種向量運(yùn)算技術(shù),可以顯著提高處理器處理機(jī)器學(xué)習(xí)和人工智能任務(wù)的能力。
- ARMv9還增強(qiáng)了安全功能,引入了新的Realm管理架構(gòu),以更有效地防止各種網(wǎng)絡(luò)攻擊和數(shù)據(jù)泄露。
- 該架構(gòu)對(duì)虛擬化支持進(jìn)行了改進(jìn),使得在云計(jì)算和其他高性能計(jì)算應(yīng)用中的虛擬化更加高效。
直白的來(lái)講,指令集是CPU與軟件之間的橋梁,使得軟件能夠正確地控制CPU執(zhí)行各種操作。同時(shí),指令集也決定了CPU的性能和功耗等關(guān)鍵指標(biāo)。不同的指令集具有不同的特點(diǎn)和優(yōu)勢(shì),適用于不同的應(yīng)用場(chǎng)景。
車載控制器中常用的ARM Cortex系列芯片基本屬于ARMv7、v8架構(gòu)。
ARM Cortex系列芯分為A、R、M系列,這也是我們經(jīng)常聽(tīng)到別人講的芯片A核、M核的來(lái)源。
Cortex-A是面向移動(dòng)計(jì)算、智能手機(jī)和服務(wù)器等市場(chǎng)的高端處理器,運(yùn)行頻率高(>1GHz),支持Linux、Android、Windows等操作系統(tǒng)所需的內(nèi)存管理單元。在車載領(lǐng)域可以用于座艙芯片、智駕芯片、中央計(jì)算平臺(tái)芯片等。
Cortex-R用于實(shí)時(shí)應(yīng)用,如車身控制器、汽車地盤系統(tǒng)和動(dòng)力系統(tǒng)控制等,不支持內(nèi)存管理單元但具備其他存儲(chǔ)器功能,運(yùn)行頻率較高(200MHz到>1GHz),響應(yīng)延遲低,支持實(shí)時(shí)操作系統(tǒng)而非完整Linux和Windows。
Cortex-M設(shè)計(jì)小巧且能效高,時(shí)鐘頻率較低但部分可達(dá)200Mhz以上,新的Cortex-M系列易于使用,在單片機(jī)和深度嵌入式系統(tǒng)中廣受歡迎,也可以用于車身控制等,只是性能較Cortex-R差一點(diǎn)。
不過(guò)芯弛推出的主要用于車控、域控的芯片E3系列,沒(méi)有采用Cortex-A,而是Cortex-R5及Cortex-R52+的形式,這是因?yàn)镋3 MCU是針對(duì)汽車安全相關(guān)應(yīng)用設(shè)計(jì)的新一代高性能微控制器產(chǎn)品,根據(jù)此需求并未選擇Cortex-A,而是實(shí)時(shí)性好、安全性高的Cortex-R系列處理器。
瑞薩的R-Car H3e(-2G) 是一款用于高端計(jì)算的汽車SOC,核心處理器包含了四個(gè)Cortex-A57、四個(gè)Cortex-A53、雙核鎖步的Cortex-R7,計(jì)算性能非常強(qiáng)大,可準(zhǔn)確實(shí)時(shí)地處理來(lái)自汽車傳感器的大量信息。它的應(yīng)用非常廣泛,例如車載娛樂(lè)信息系統(tǒng)和集成駕駛艙。它符合 ISO 26262(ASIL-B) 汽車功能安全標(biāo)準(zhǔn)和信息安全要求。2GHz 運(yùn)行速度的 (H3e-2G) 在提高處理能力的同時(shí)保持硬件和軟件兼容性。
總的來(lái)說(shuō),ARM架構(gòu)以其低功耗、高性能和可定制化的特點(diǎn),在汽車電子領(lǐng)域發(fā)揮著重要作用。隨著技術(shù)的不斷發(fā)展和創(chuàng)新,ARM架構(gòu)仍然有著巨大的發(fā)展空間。通過(guò)選擇合適的核心、優(yōu)化代碼、使用硬件加速和優(yōu)化存儲(chǔ)器訪問(wèn)等策略,可以進(jìn)一步提高系統(tǒng)的性能和功耗效率,滿足各種應(yīng)用場(chǎng)景的需求。