官方服务微信:dat818 购买与出租对接

虚拟化技术对智驾芯片设计的需求与影响,推动技术发展

4万

主题

2

回帖

12万

积分

管理员

积分
120657
发表于 2025-5-13 10:08:38 | 显示全部楼层 |阅读模式
    作者 |辉羲智能-刘杰威

    导读

    本文着重分析虚拟化技术在智能驾驶芯片设计领域中的作用及其带来的影响,旨在应对汽车芯片领域对强大计算能力、高度集成以及功能安全的迫切需求。作者结合对车载芯片未来发展趋势的初步思考,期望能够激发更多讨论,共同促进智能驾驶芯片技术的进步。

    HUIXI TECH

    一、智驾芯片需要虚拟化

    智驾系统不是一个单一的简单任务。

    在功能层面,必须运用多种典型的功能模块,诸如传感器的驱动程序编写、输入数据的整合与感知处理、路径规划算法的应用以及实车操控技术,同时还要确保功能安全与信息安全等方面的全面覆盖。

    在生态层面,智驾解决方案的落实需众多生态链合作伙伴的协同努力,涉及硬件与驱动程序供应商、操作系统供应商以及规控算法供应商等。这些独立产品各自需要不同领域的技术支持,符合“各司其职”的原则,但同时也增加了产品间集成的复杂性。

    在成本与效率的角度进行考量,高度整合的方案通常能够实现成本上的优势,并且对效率的提升通常具有积极的作用,而对于功能的相互依赖性,则往往需要提出更为严格的标准。

    为了确保用户能够获得性能最卓越的产品,我们必须全面考量每一个细节。因此,在系统架构层面,形成了一种发展趋势,旨在满足智能驾驶系统的全方位需求:硬件方面,通过高度集成化手段来减少成本;软件方面,则通过虚拟化技术来降低功能间的相互依赖,并增强系统的安全性。虚拟化技术,作为一种在业界相对成熟的技术手段,能够为系统提供独立的运行环境。自然,若要在同一片SoC芯片上运行多个操作系统,除了采用虚拟化技术之外,还可以采取其他途径,例如实施硬件级别的隔离。对此,我们将在后续内容中进行详细的比较和阐述。

    HUIXI TECH

    二、虚拟化技术特色

    本文以ARMv8-A架构为核心,探讨了虚拟化技术的原理。其中,对操作系统公开资料的剖析为我们揭示了这一技术的本质。基于这种相通的思路,我们不难将其应用于其他虚拟化方案。

    硬隔离与虚拟化

    隔离是虚拟化技术至关重要的需求之一。其实现方式包括“硬隔离”,即在芯片设计阶段对功能进行分区,并为每个分区分配专属资源,随后通过专用总线实现分区间的信息交流。此外,还有“软隔离”方法,即利用虚拟化手段将同一分区内的资源进行隔离,确保各应用在独立环境中运行,既确保了安全防护,又保持了相互间的沟通联系。

    硬隔离与虚拟化各自拥有独特的属性和适用领域,以下表格详细展示了这两种技术的差异及其优缺点对比。

    硬隔离在实现中断处理、非易失性存储的共享以及错误检测与处理方面存在较大难度,而虚拟化技术则提供了较为成熟的解决方案。总体来看,虚拟化方案表现更为出色,其核心优势体现在灵活性和扩展性上。

    在处理复杂的芯片设计时,通常需要针对不同的应用场景采取相应的策略,以确保整体性能达到最佳。例如,当对系统的灵活性要求不高,而更强调隔离性时,采用硬隔离技术可能更为合适。在智能驾驶领域,我们经常可以在常见的SoC芯片中观察到MCU岛、信息安全岛等设计,这些都是硬隔离技术的典型应用实例。当然,这需要SoC设计者对每个“岛”所需的计算和存储资源进行精准的估算;否则,若因资源短缺而跨越“岛”的边界去获取,那么系统的性能将会显著低于其理论参数。

    在需要同时考虑灵活性与隔离性的场合,比如由多个A核构成的CPU集群,需要实施安全监控、规范控制和驱动支持等共享功能时,虚拟化技术将显著促进其功能的开发与运行效率。

    内核系统虚拟化

    内核系统虚拟化主要关注如下几个核心功能:

    1. CPU

    2. 内存

    3. 中断

    ARMv8在这些方面已相对成熟,现今主流的-A系列CPU普遍具备两层MMU的功能,并能够执行虚拟化的基本操作。当然,为了满足更高的安全隔离需求,通常还会采用SMMU,以此提供一种访问外设的虚拟化解决方案。

    MMU与SMMU是地址虚拟化的典型方法。MMU在CPU访问地址时提供协助(涉及操作系统、内核、进程等);SMMU则在外设访问地址时提供支持(包括DMA、PCIe、GPU等)。MMU和SMMU共同解决了三种地址空间转换的问题,确保了应用程序能够拥有独立的虚拟地址空间。

    三种地址空间

    1. 虚拟地址,VA,在一个OS内,根据EL级别

    - 又分成用户态和内核态VA,他们是不同的

    - 用户态地址空间布局,是由OS内核营造的

    - 每个进程地址空间总体结构都差不多,内容千差万别

    - 进程认为它是在独占整个系统内存

    2. 中间物理地址 PA,IPA

    - 这是虚拟机认为的物理地址

    - 这种物理地址的空间布局,是由虚拟机管理器营造

    3. 实际物理地址PA

    - 对于SoC芯片来说,这才是真正全局唯一的

    虚拟地址的核心意义

    长期以来,虚拟地址已成为现代大型操作系统的一项核心特性,其作用之一便是确保多用户环境的实现,并确保用户间数据独立。在ARMv8-A架构中,内存管理单元(MMU)是A核CPU的标配,然而,能够支持虚拟地址的DMA设备却相对较少。在虚拟化技术问世之前,所谓的地址翻译,实际上就是将虚拟地址转换为物理地址的过程。自从引入了虚拟化技术,翻译工作变得更加繁复。为了便于大家理解,我们暂时不涉及虚拟化技术。在此之后,我们将经过这一转换步骤的地址称作物理内存地址。这一过程实际上是将虚拟地址VA转换为物理地址PA。

    一般而言,负责实现虚拟地址转换的组件被称作MMU,而每个-A系列CPU的核心都配备了一个MMU模块。至于外部设备,情况则有所不同,它们可以通过两种方式实现地址转换:通常情况下,较为复杂的外设会集成MMU模块,而对于普通的外设,我们则采用SMMU。一个外设可以独享一个SMMU实例,或者多个外设可以共用一个SMMU实例,这也是SMMU设计得较为复杂的原因之一。

    当引入内存虚拟化后,地址翻译就需要分成,。

    该虚拟地址主要作用在于,它被操作系统用于区分并隔离开不同的用户进程,同时亦用于分隔和区分不同的虚拟机。

    在非虚拟化状态下,翻译流程与之前并无二致。对于驱动开发者而言,地址转换的操作是隐匿的,他们大可不必深究这一过程,从而简化了他们对内存结构的认识。然而,当涉及到多个虚拟机之间,或是SoC异构系统间的内存共享时,情形便会变得相当复杂。

    设备虚拟化

    我们无法对设备的丰富性进行全面实现,因此本文将聚焦于探讨几个核心模块,并期望通过这种分析能够触类旁通,将相关经验推广至其他设备之中。

    存储虚拟化

    系统中存储器eMMC或UFS,存在多系统使用共享存储问题

    1. 假如使用2个UFS存储器,各自用于一个虚拟机

    当存储资源不足以进行分配时,主机端作为后端系统,同时负责处理Linux操作系统以及前端虚拟设备的相关任务。

    当前行业内对于处理方式存在分歧,部分汽车制造商偏好采用单一存储器,以供多个系统共用,此举有助于削减成本,然而却提升了单一故障的风险,而且前后端架构对存储性能的优劣影响显著。另一些汽车制造商则坚定地采用双存储器配置,以确保数据存储的稳定性和高效读写性能,但这往往会导致成本的增加。这无疑是一个在技术、经济以及安全性方面都需要进行综合考虑的问题。或许在不久的将来,将会有支持虚拟化的存储控制器问世,届时有望有效解决这一问题。

    多媒体设备虚拟化

    多媒体设备由多个部分构成,其工作方式是数据流在这些部分之间依次被处理,并传递至帧缓冲区,这一过程并非通过多次复制数据来实现。具体要求如下:

    1. 多设备地址空间一致,通常统一使用物理地址

    2. 帧缓冲区跨进程流动,需要考虑引用计数和安全回收问题

    3. 内存管理不是模块级的,而是系统性设计

    必须采用一个全面的内存资源池,以应对内存的申请与释放操作,并对使用情况进行监控。

    特别是视频设备,这类设备通常由众多处理单元构成一条处理管道,它们传递帧缓冲数据,这就隐含地要求这些多媒体处理单元必须在一个操作系统中进行统一管理。若涉及多个虚拟机,无论是从实现上的复杂性,还是实时性以及安全性方面来看,都面临着相当高的设计挑战。

    从应用层面来看,多媒体设备通常不会由各个子系统进行分时共享,它们往往是静态地分配给不同的子系统,通过多个通道。鉴于此,选用多实例直通外设或是硬件虚拟化外设似乎更为适宜。

    加速引擎虚拟化

    智驾系统对于加速引擎的依赖性极为明显,比如ISP计算加速和AI加速等方面。若该系统仅应用于自驾的特定场合,那么可以采用直接连接的方式,为智驾操作系统提供专属的加速服务。

    随着的广泛应用,涌现出新的机遇:人工智能在非智能驾驶领域有望拓展更多应用场景。这导致在整车中,对人工智能处理能力的需求将变得更加丰富多样,对AI运算能力进行“分解”的需求或许会增强。同时,鉴于人工智能处理对数据流也有较高要求,其发展或许会趋向于类似“多媒体设备”的虚拟化路径。

    HUIXI TECH

    三、总结

    在汽车智能化趋势的推动下,智驾系统芯片的设计理念融合了多个行业的精华:它需汲取手机消费级芯片在多媒体处理以及运行模式与功耗控制方面的精准技术;同时,它还需参考服务器芯片在运算资源与数据带宽规划与实现上的合理布局;此外,它还需符合汽车行业在功能安全等方面的特定要求,并构建完善的软件生态系统。这一领域的技术挑战既庞大又复杂。

    采用虚拟化技术,对自动驾驶芯片SoC的设计而言,是一项全面的思考。为确保安全,并使多个供应商及不同技术层面的功能在资源获取上既具备灵活性,又确保隔离,虚拟化技术成为不可或缺的解决方案。
您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|关于我们

Copyright © 2001-2025, Tencent Cloud.    Powered by Discuz! X3.5    京ICP备20013102号-30

违法和不良信息举报电话:86-13718795856 举报邮箱:hwtx2020@163.com

GMT+8, 2025-6-12 16:27 , Processed in 0.101153 second(s), 18 queries .