ARM架构及在汽车电子芯片中的应用

欢迎关注下方公众号阿宝1990,本公众号专注于自动驾驶和智能座舱,每天给你一篇汽车干货,我们始于车,但不止于车。



#01
ARM处理器
 
当前,在众多负责车辆核心控制功能的控制器中,其内部所采用的处理器有很大一部分均基于ARM架构。这一架构凭借其出色的能效比、广泛的生态系统支持以及高度的灵活性,在汽车电子领域占据了举足轻重的地位。鉴于此,本文旨在简要介绍ARM架构处理器的特点,供大家探讨交流。
                
ARM是英国的一家公司,设计了低功耗成本的第一款RISC微处理器,即ARM处理器(Advanced RISC Machines)。在经典处理器ARM11以后,ARM公司的产品开始改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。Cortex系列属于ARMv7架构,这是ARM公司在当时最新的指令集架构。因此,可以说Cortex是ARM公司推出的一个系列处理器的名称,其起源可以追溯到ARM公司的处理器设计和发展历程。
     


#02
ARM指令集

先大概解释一个概念,什么是芯片处理器的指令集?指令集主要是指CPU硬件和软件之间的接口描述,它本质上是一段二进制机器码。CPU只能识别并执行这些机器码指令,而机器码本身是一串无意义的字符串,对于程序员来说很难理解和使用。因此,人们发明了汇编语言等高级编程语言,这些语言与机器码有一一对应的关系,使得程序员能够更方便地编写和调试程序。   

指令集可以分为多种类型,其中比较有名的是复杂指令集(CISC)和精简指令集(RISC)。

  • 复杂指令集(CISC):这类指令集包含大量的指令,且每条指令的功能较为复杂。X86指令集就是一种典型的CISC指令集。

  • 精简指令集(RISC):与CISC相对,RISC指令集包含的指令数量较少,且每条指令的功能相对简单。ARM指令集是RISC指令集的一个代表,它广泛应用于移动设备、嵌入式系统等领域。
          
我们还经常听见“ARM架构的芯片”之类的词汇,其实这个架构指的就是某一个处理器所使用的具体指令集。目前市场上主流的芯片架构有 X86、ARM、RISC-V和MIPS四种。
          
在大部分场合,架构等于指令集。例如,如果一个处理器是基于ARMv7架构的,那么它就使用ARMv7指令集。指令集架构是计算机体系架构的一部分,它规定了处理器能够识别并执行的指令集合。ARM架构还有v8、v9版本,v7是较早的版本,也是目前广泛应用的ARM架构版本之一,从ARMv7架构被分为A系列(Application Processors,用于高性能产品)、R系列(Real-time Processors,用于实时系统)和M系列(Microcontroller Processors,用于微控制器);ARMv9是ARM架构的最新版本,这三个版本指令集的对比大致如下:
          
ARMv7:

  • 它引入了新的指令集,如Thumb-2,这是一种混合了32位和16位指令的新指令集,既能提供高性能,又能节省存储空间。

  • ARMv7还支持硬件浮点运算(VFPv3),提高了处理器处理浮点数的能力。

ARMv8:    

  • 这是ARM首次引入的64位架构版本。

  • 它同时支持64位和32位应用,提供了更大的地址空间、更多寄存器和增强的安全特性。

  • ARMv8引入了新的指令集AArch64,用于执行64位操作。

  • 该架构还改进了浮点和SIMD(单指令多数据)的支持,包括新的浮点运算指令和为多媒体和数据处理优化的新SIMD指令。

  • ARMv8还引入了硬件虚拟化支持,提高了在虚拟环境中运行应用的性能。

ARMv9:

  • ARMv9对之前的版本进行了一系列优化和改进,以提高处理器的性能和效率。

  • 它引入了新的SVE2(Scalable Vector Extension 2)技术,这是一种向量运算技术,可以显著提高处理器处理机器学习和人工智能任务的能力。

  • ARMv9还增强了安全功能,引入了新的Realm管理架构,以更有效地防止各种网络攻击和数据泄露。

  • 该架构对虚拟化支持进行了改进,使得在云计算和其他高性能计算应用中的虚拟化更加高效。
          
直白的来讲,指令集是CPU与软件之间的桥梁,使得软件能够正确地控制CPU执行各种操作。同时,指令集也决定了CPU的性能和功耗等关键指标。不同的指令集具有不同的特点和优势,适用于不同的应用场景。
          


#03
车载芯片Cortex内核应用 

车载控制器中常用的ARM Cortex系列芯片基本属于ARMv7、v8架构。

ARM Cortex系列芯分为A、R、M系列,这也是我们经常听到别人讲的芯片A核、M核的来源。    

图片

Cortex-A是面向移动计算、智能手机和服务器等市场的高端处理器,运行频率高(>1GHz),支持Linux、Android、Windows等操作系统所需的内存管理单元。在车载领域可以用于座舱芯片、智驾芯片、中央计算平台芯片等。
          
Cortex-R用于实时应用,如车身控制器、汽车地盘系统和动力系统控制等,不支持内存管理单元但具备其他存储器功能,运行频率较高(200MHz到>1GHz),响应延迟低,支持实时操作系统而非完整Linux和Windows。
          
Cortex-M设计小巧且能效高,时钟频率较低但部分可达200Mhz以上,新的Cortex-M系列易于使用,在单片机和深度嵌入式系统中广受欢迎,也可以用于车身控制等,只是性能较Cortex-R差一点。 
 
图片

芯弛X9系列的芯片架构

国内芯片厂商芯弛的网关芯片G9系列、智驾芯片V9系列、座舱芯片X9系列的芯片主要处理器都是Cortex-A55+Cortex-R5的形式,构成了多核异构的芯片。

图片

芯弛E3系列的芯片架构

不过芯弛推出的主要用于车控、域控的芯片E3系列,没有采用Cortex-A,而是Cortex-R5及Cortex-R52+的形式,这是因为E3 MCU是针对汽车安全相关应用设计的新一代高性能微控制器产品,根据此需求并未选择Cortex-A,而是实时性好、安全性高的Cortex-R系列处理器。  
 
图片

NXP S32G399A 架构图

再比如说恩智浦(NXP)的域控、网关系列产品S32G系列,处理器内核选择为Cortex-M7+Cortex-A53的形式,S32G系列中最高端的产品S32G399A就有4个Cortex-M7+8个Cortex-A53,这种异构的形式使得整个SoC具有较高算力的同时,也可以在Cortex-M上满足ASIL D安全标准。

图片

S32K3系列处理器构成

另外NXP的S32K3系列芯片在电源管理、逆变器控制、车身区域控制等多方面都有应用,该系列具有多个Cortex-M7内核,有的还有两个可分锁步Cortex-M7,双核锁步(Dual Core Lock Step,简称DCLS)是一种CPU冗余技术,双核锁步技术在一个芯片中包含两个相同的处理器,这两个处理器以主从(master和slave)关系运行。它们执行相同的代码并严格同步,关键的是双核锁步技术通过硬件层面的冗余和比较机制,能够迅速监测并隔离处理器运行的错误,防止故障蔓延。    

图片

S32K39x (x=4 or 6)芯片框图

瑞萨的MCU/MPU/SoC等产品也广泛应用了ARM架构的内核。

图片

瑞萨的R-Car H3e架构

瑞萨的R-Car H3e(-2G) 是一款用于高端计算的汽车SOC,核心处理器包含了四个Cortex-A57、四个Cortex-A53、双核锁步的Cortex-R7,计算性能非常强大,可准确实时地处理来自汽车传感器的大量信息。它的应用非常广泛,例如车载娱乐信息系统和集成驾驶舱。它符合 ISO 26262(ASIL-B) 汽车功能安全标准和信息安全要求。2GHz 运行速度的 (H3e-2G) 在提高处理能力的同时保持硬件和软件兼容性。   
          
总的来说,ARM架构以其低功耗、高性能和可定制化的特点,在汽车电子领域发挥着重要作用。随着技术的不断发展和创新,ARM架构仍然有着巨大的发展空间。通过选择合适的核心、优化代码、使用硬件加速和优化存储器访问等策略,可以进一步提高系统的性能和功耗效率,满足各种应用场景的需求。


/ END /