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
作者:不可说
来源:汽车电子与软件
推荐阅读:
- IAR 环境下的 FlashLoader 设计
- AP AUTOSAR 硬核技术(9):平台健康管理 PHM 详解 (下)
- 汽车虚拟控制器(vECU)技术解析与实践
- AP AUTOSAR 硬核技术(8):平台健康管理 PHM 详解 (上)
更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。)