AI系统-23AI芯片CPU子系统介绍

news2026/3/31 11:15:39
AI SoC中有很多异构核围绕着这些异构核产生了很多子系统之前也介绍过:AI系统-16AI SoC推理芯片架构介绍。这里面的老大哥毫无疑问就是CPU子系统尽管其他AI子系统特别是NPU是干活的主力但是头把交椅还得资格最老的CPU来坐进行全局指挥。当然还有一个太上皇参考之前的文章ARM SCP入门-简介和代码下载编译本文从比较成熟、使用最广的ARM A核为例来介绍下CPU子系统应该比较浅显具体细节会无比的复杂这里能入门可以。1. CPU子系统介绍参考https://developer.arm.com/Processors/CoreLink CMN-600AE上图是ARM针对高性能汽车系统而设计的CMN-600AE包括数字驾驶舱、高级驾驶辅助系统 (ADAS) 和自动驾驶系统。在设计CPU子系统的时候可以选用如上图Arm CoreLink CMN-600AE 相干网状网络的架构。CMN-600AE是 Arm Safety Ready 计划的一部分该计划是 Arm 产品组合中的一系列产品这些产品都经过了各种严格级别的功能安全系统流程和开发。在ARM架构的CPU子系统中组件设计旨在高效地整合了多种功能模块以支持处理器核心的运行、内存管理、中断处理、数据交换以及与外部设备的交互等。以下是ARM CPU子系统中的一些关键组件CPU Cores (处理器核心): 包括多个处理单元如高性能的Cortex-A系列核心或高效能效核心负责执行指令。GIC (Generic Interrupt Controller): 管理中断请求确保系统对事件做出快速响应支持多级中断处理和虚拟化。DSU (DynamIQ Shared Unit): 在具备DynamIQ技术的SoC中DSU管理共享资源如L3缓存优化多核通信和数据一致性。Cache System: 包括L1 Cache靠近核心的高速缓存分指令和数据缓存L2 Cache更大有时是多核共享。Memory Controller: 控制内存访问如DDR控制器管理与主存交互。AMBA总线: 如AMBA总线架构提供系统内部组件间的通信包括常见的AXIAdvanced eXtensible Interface协议。System Control Block: 负理系统复位、时钟、电源管理等初始化配置。Security Features: 如TrustZone、加密引擎确保系统安全。Debugging and Trace: CoreSight、JTAGC等方便调试和性能分析。Connectivity and Peripherals: 包括USB、Ethernet控制器、显示接口、I2C、SPI等以支持与外设别交互。这些组件共同构成了复杂且高度集成的CPU子系统支持现代计算平台的高效、低功耗、安全性以及可扩展性需求。ARM对于异构处理器架构**bit.LITTLE高性能小功耗**给出的一张经典图2. 关键组件2.1 CPU CoreARM在商用领域还是领先其有广泛的使用场景设计和成熟的稳定性生态发展很好。后来者RISC-V目前在一些低端产品中使用较多。ARM分为三个系列Cortex-ACortex-RCortex-M。其他的一些应用如下这里我们以针对汽车的A76AE为例进行说明A76AE 与 A76 类似但具有Split-Lock的额外优势使其适用于汽车、航空、机器人和其他自主应用。Cortex-A76 专为 AI/ML 打造可提高边缘响应能力。ARM 表示与 A75 相比这款处理器的整数浮点性能提高了 25%浮点性能提高了 35%。该核心每周期可获取 4 条指令同时在同一周期内重命名和调度 4 个 Mops 和 8 个 μop。与 A90 相比内存带宽也增加了 75%。该处理器支持DynamIQ与更节能的A55核心一起使用时可提供高性能计算。举例像 DSGW-380 RK3588工业机器学习边缘AI网关 得益于这种异构系统它们能够在处理复杂的边缘 AI 任务时提供高性能和能效的结合。该网关还在其 8 核 CPU 中内置了 NEON 协处理器在其 SoC 中内置了 6 TOPS NPU以增强其 AI 功能。对于前端架构总体来看Cortex-A76是这样一个结构超标量乱序结构拥有4个解码前端4发射8个执行端口总流水线级数13级执行延迟为11级。在前端ARM设计了一个新的预测/获取单元被称为“基于预测的获取”这意味着分支预测单元将介入指令获取单元的工作这和之前所有的ARM微架构都有所不同能够实现更高的性能和更低的功耗。对于后端架构的执行部分。Cortex-A76的整数核心包含了6个执行单元其中图中有4个单元分别是1个分支、2个ALU、1个ALU/MAC/DIV单元再加上一个加载/存储单元。其中的3个整数执行流水线中的2个ALU进行简单算术操作1个复杂流水线执行乘法触发和CRC操作。3个整数管道由一个深度为16的指令队列提供指令服务2个加载/存储单元则由深度为12的指令队列负责。浮点方面ARM设计了2个执行单元其中一个执行FMUL/FADD/FDIV/ALU/IMAC等功能较为强大另一个比较简单只执行FMUL/FADD/ALUASMID浮点核心由2个深度为16的队列提供指令服务。下面介绍A76AEArm Cortex-A76AE带来了最高水平的Split-Lock能力包括双核锁步DCLS的能力。Cortex-A76AE也提供了毫不妥协的性能和热效率。它是下一代高级驾驶辅助系统ADAS和自动驾驶系统的首选处理器。热效率更高效包含最新的最先进的微体系结构特性提供更大的单线程整数、浮动点、内存和ML性能。在有限的功率范围内执行具有持续性能的工作负载。使用Split-Lock的灵活性使用ASIL D硬件指标切换最高的分裂模式的多核性能或高级多核容错的锁定模式。为未来的混合临界性应用程序提供额外的灵活性。超尺度处理器核心超尺度处理器核心解码、问题和执行比上一代更多的指令。增强功能还包括完全无序处理、非阻塞的高吞吐量L1缓存以及高级指令和数据预取。当然这里只是举个例子实际应用中随着时间的推移新的处理器的出现。但是其基本原理是相似的。2.2 DSUARM的IP可以直接去ARM官网下载资料https://developer.arm.com/documentation/100453/latest/DSU的一些特点成簇绑定使用核心功能是控制CPU内核使其成簇Cluster使用簇内每一个核心可以单独开关、调整频率/电压能效表现更佳甚至制造商是可以将不同核心以不对等的数量放到一个簇内兼顾成本与性能。L3缓存的共****享DSU能够使用CCI、CCN或是CMN不同总线技术把CPU与SoC里其它单元GPU、Modem、内存高速连接起来假如它拥有4MB三级缓存能以动态方式分配缓存给每个核心比如说Cortex-A75×1 Cortex-A55×7下可以将3MB缓存分配给A75核心剩下7个A55核心共享1MB缓存甚至可将三级缓存交给GPU等单元使用灵活性非常高冗余设计设计DynamIQ之时ARM还考虑到冗余需求比如相比智能手机汽车对可靠性、冗余度要求高出不少DynamIQ允许多个簇通过CCIX连接在一起这样处理器就可以分布于汽车不同位置当发生交通意外一个簇受损时DynamIQ技术可以调用出备用处理器保证汽车正常运转。DynamIQ™共享单元DSU包括L3内存系统、控制逻辑和外部接口以支持DynamIQ™集群。DynamIQ™集群微体系结构整合了一个或多个核心与 DSU形成一个按指定配置实现的集群。在宏单元实施过程中可以选择和配置core。集群可以以以下三种配置之一实现一组具有相同微体系结构的核心。两组核心其中每组具有不同的微体系结构。这种配置可能在 DynamIQ™ big.LITTLE™集群中使用。三组核心其中每组具有不同的微体系结构。DynamIQ cluster顶层由DSU与DebugBlock组成。DSU包含L3、ctrl logic external interface。DebugBlock包含3组apb接口、rom、CTM、CTI PMU。一个DynamIQ™集群系统由两个顶级模块组成一个包含核心的模块和一个DynamIQ™共享单元DSU。DynamIQ™集群被称为该集群。将调试组件与集群分开可以在单独的电源域中实现调试组件从而允许在断电时进行调试。下图显示了DynamIQ™集群系统中的主要组件CN代表一组核其中CN的值为核总数-1。Arm架构允许内核是单个的或多线程的。**处理元素PE**执行一个执行线程。一个单线程核心有一个PE一个多线程核心有两个或更多个PE。在引用一个核心的地方这个核心可以是一个单一的或者多线程核心。与PEs相关联的信号名称使用缩写PE其中PE的值为PEs - 1的总数。DSU AE主要是添加了比较器再有就是亮色部分都复制一份包括执行逻辑、时钟、功率状态各个界面当然缓存不能复制那样成本太高也意义不大。|元件|描述|| — | — ||CPU桥接器|CPU 网桥控制内核和 DSU 之间的缓冲和异步处理。||时钟和电源管理|群集支持一组由外部电源控制器控制的省电模式。这些模式是通过 P 通道上的电源模式请求来选择的对于每个内核以及用于 DSU 的单独 PChannel。通过从外部时钟控制器向DSU发出的Q通道请求来支持时钟门控。Q 通道允许单独控制 SCLK、PCLK、ATCLK 和 GICCLK 时钟输入。||Snoop 控制单元|Snoop Control Unit (SCU)保持集群中所有数据缓存之间的一致性存在私有的缓冲区||L3 缓存|缓存大小实现为 256KB、512KB、1MB、1.5MB、2MB、3MB 或 4MB。所有缓存的行长均为 64 字节。可选择实现数据和标签RAM的ECC保护。||主存储器主控|主存储器接口最多支持两个ACE或CHI主接口。||加速器一致性端口|加速器一致性端口 ACP 是可选的从接口。ACP 提供对可缓存内存的直接内存访问。SCU 通过检查 ACP 访问在核心和 L3 缓存中的分配来保持缓存一致性。ACP 实现了ACELite 协议的子集。||外设端口|外设端口是可选的主接口提供对紧密耦合加速器的DEVICE访问。该端口实现 AXI 4 主接口协议。||DSU系统控制寄存器|DSU 实现一组系统控制寄存器这些寄存器对群集中的所有内核都是通用的。您可以从集群中的任何内核访问这些寄存器。这些寄存器提供1.控制群集的电源管理。2.L3缓存分区控制。3.CHI QoS总线控制和方案ID分配。4.有关 DSU硬件配置的信息。5.L3 缓存命中和未命中计数信息。||调试和跟踪组件|每个内核都包括一个嵌入式跟踪宏单元 ETM允许在调试时进行程序跟踪。来自内核的触发事件被合并并输出到调试 APB 主节点。在调试 APB 从机上接收到内核的触发事件和调试寄存器访问。||群集到 DebugBlock APB|当 APB 写入时来自内核的触发事件将传输到 DebugBlock||DebugBlock 群集 APB|触发事件在APB 写入 DSU 时传输到内核。来自系统调试APB 的寄存器访问被传输到 DSU||系统调试 APB|系统调试 APB 从属接口连接到外部 CoreSight 组件如调试访问端口DAP||CTI 和 CTM|DebugBlock 实现嵌入式交叉触发器 ECT。交叉触发接口 CTI 分配给集群中的每个 PE如果存在则为集群 ELA 分配额外的 CTI。CTI 通过交叉触发矩阵 CTM 相互连接。实现单个外部通道接口允许将交叉触发扩展到 SoC。||调试ROM|ROM 表包含系统中的组件列表。调试器可以使用 ROM 表来确定实现了哪些CoreSight 组件||电源管理和时钟门控|DebugBlock 实现了两个 Q 通道接口一个用于控制 PCLK 时钟的请求另一个用于控制调试电源域的请求。|DSU的流程其主要功能和特点包括L3缓存控制器DSU集成L3缓存控制器为整个CPU集群提供共享的、大容量的高速缓存以减少对更慢速主存的依赖提高数据交换效率。一致性管理在多核处理器系统中DSU负责维护缓存一致性确保所有核心看到的数据是一致的通过实施缓存一致性协议如MESI、MOESI来协调数据更新。数据共享与分配DSU优化多核间的数据分配和共享通过有效的缓存分配策略和传输机制减少数据复制提高数据访问效率。能效管理作为SoC的一部分DSU还可能集成能效管理机制支持动态调整频率和电源状态以平衡性能与能耗。系统互联DSU通过高带宽、低延迟的内部总线与CPU核心、外设别、内存控制器等SoC组件相连确保数据快速流动。简言之DynamIQ Shared Unit是DynamIQ架构中的一个核心组件它通过提供共享缓存、缓存一致性管理、数据高效共享和能效优化支持高性能、多核处理器系统中复杂数据处理和高效协作。2.3 缓存计算机系统中的层次化缓存层次结构通常由多个级别的缓存组成这些级别包括L1缓存、L2缓存和L3缓存。每个级别的缓存都有不同的特性例如容量、访问速度和成本。以下是一般的层次化缓存结构L1缓存第一级缓存位置通常与处理器核心紧密集成位于核心内部。容量相对较小以KB为单位。访问速度非常快与处理器核心的时钟速度相匹配。作用提供最快的数据访问用于存储频繁使用的指令和数据。L2缓存第二级缓存位置通常位于处理器核心和主内存之间。容量比L1缓存大以MB为单位。访问速度比主内存快但相对于L1缓存较慢。作用扩展了缓存层次结构提供更多的缓存空间用于存储更多的指令和数据。L3缓存第三级缓存位置通常位于多个处理器核心之间是共享的。容量更大以MB或更大的单位为准。访问速度相对于L2缓存和L1缓存较慢但仍然比主内存快。作用为多个处理器核心提供共享的缓存资源促进核心之间的数据共享和一致性。主内存RAM位置通常位于计算机系统的主板上。容量远大于L3缓存以GB为单位。访问速度相对较慢远低于缓存。作用存储操作系统、应用程序和数据是计算机系统中存储层次结构的最大容量部分。层次化缓存结构的设计旨在利用不同级别缓存的优势通过提供更小、更快的缓存来提高数据访问速度并通过较大、较慢的缓存提供更大的存储容量。这有助于平衡性能和成本。程序执行时会先将内存中的数据加载到共享的 L3 Cache 中再加载到每个核心独有的 L2 Cache最后进入到最快的 L1 Cache之后才会被 CPU 读取。2L3 CacheL3 Cache第三级缓存是计算机系统中的一个层次化缓存层次结构中的一部分。在这里L3 Cache是DSU的组成部分之一用于支持DynamIQ™集群中的多个处理核心。具体来说关于L3 Cache的说明包括以下几个关键点简化进程迁移L3 Cache的一个作用是简化处理core之间的进程迁移。当一些处理core被配置为没有独立的L2缓存时它们可以共享L3 Cache并将其视为自己的L2缓存。这有助于在处理器核心之间更灵活地进行任务切换和迁移。层次化缓存结构在计算机系统中层次化缓存结构是一种常见的设计其中L1、L2和L3缓存层次不同越高级别的缓存容量越大但访问速度相对较慢。L3 Cache通常是多个处理核心共享的以提供更大的缓存容量。一致性维护L3 Cache通过Snoop控制单元Snoop Control UnitSCU来维持处理核心和L3缓存之间的一致性。这确保了所有核心对共享数据的访问是同步和一致的防止数据不一致的问题。总体而言L3 Cache在多核系统中发挥着重要作用提供了更大的共享缓存促进了任务之间的灵活性和数据一致性。通常情况下每个处理器core都有自己的L1缓存和L2缓存。然而有时为了某些设计或性能的考虑可以选择将某些core配置为没有独立的L2缓存。没有L2的coreL3 cache可视为L2cache。在这种情况下这些core需要访问共享的L3缓存来获取缓存的好处以满足其对数据和指令的快速访问需求。这种配置的优点可能包括降低硅芯片的复杂性、减小硅芯片的面积、降低成本等。然而也需要确保在共享L3缓存的情况下这些核心仍然能够有效地协同工作并且对共享缓存的访问能够被管理和优化以确保整体性能的提升。2.4 SCUSnoop Control UnitSCU是多处理器系统中的一个关键组件特别是在包含缓存一致性设计中如对称多处理机群集SMP或片上系统SoC中。其主要作用是维护缓存一致性确保所有处理器核心对共享缓存的内容有统一的视图景从而保证数据的一致性和正确性。SCU的工作机制通常包括以下方面监听Snooping: SCU监听所有处理器核心对共享缓存的访问请求包括读取和写入操作。当一个核心试图修改缓存中的数据时SCU介入以确保其他核心对该数据的缓存副本不会变得陈旧。缓存更新: 如果一个核心请求的数据在另一个核心的缓存中是脏已修改但未回写回主存SCU会促使持有该脏数据的核心将其写回到共享缓存或主存然后更新请求核心的缓存保证数据最新。一致性协议: SCU遵循一定的缓存一致性协议如MESIModified, Exclusive, Shared, Invalid、MOESIModified, Owner, Exclusive, Shared, Invalid或其他协议来决定如何响应缓存访问并维护一致性。广播与仲裁: 在多核系统中SCU可能需要广播某些缓存操作比如写操作给所有核心或仲裁缓存访问冲突决定哪个核心优先级次序。目录管理: 在大型系统中SCU可能配合缓存目录使用目录存储哪个缓存行位于哪些地方其状态减少广播范围和提高效率。综上所述Snoop Control Unit是多处理器缓存一致性机制中的重要一环通过监听和协调处理器间的缓存操作确保数据的一致性从而支持高效、可靠并行计算。2.5 Coresight systemCoreSight架构是ARM公司为复杂系统级芯片SoC设计的调试和追踪解决方案它提供了一个高度集成且可扩展的框架用于系统级的调试、性能分析和优化。CoreSight架构旨在支持多核和多处理器环境尤其是在面对现代嵌入式系统和高性能计算领域其功能强大且灵活的特性能够显著提升开发效率和系统性能。以下是CoreSight架构的一些关键组成部分和功能调试和追踪IP模块•包括嵌入式追踪宏单元ETM, Embedded Trace Macrocell, ETM、系统追踪宏单元STM, System Trace Macrocell, STM、数据观看点单元Data Watchpoint Unit, DWT等这些模块负责捕获程序执行时的指令流、数据访问、系统事件、性能计数等信息。跨触发接口- CTICross Trigger Interface, CTI允许不同调试和追踪组件之间同步事件支持复杂的系统级调试和性能分析。调试访问点- DAPDebug Access Port, DAP和DPDebug Port提供调试接口允许调试器通过串行线调试协议如JTAG, SWD访问系统。电源管理支持系统级的动态电压和频率调整DVFS优化能效。CoreSight架构的组件可按需组合根据SoC的具体需求定制化集成以达到最佳的调试、性能监控和系统优化效果支持从简单的单核微控制器到复杂的多核服务器芯片的广泛应用。2.6 SMMUARM SMMU指的是ARM架构中的System Memory Management Unit它是一种系统级的内存管理单元主要负责地址转换和内存访问权限控制。在ARM架构中SMMU主要用于处理非CPU核心的内存管理尤其是外设别和硬件加速器的内存访问。与CPU核心中的**MMU管理虚拟地址到物理地址转换**类似SMMU提供了对系统其他组件的内存访问控制确保安全和高效的数据交互。特别地ARM SMMU在不同场景下的应用和功能包括外设别DMA访问隔离SMMU通过配置映射表管理外设别DMA请求确保其只能访问被授权的内存区域防止非法或越界访问增强了系统安全性。硬件加速器访问控制对于硬件加速器如GPU、网络加速器、加密加速器等SMMU确保它们仅访问指定的内存区域避免对系统关键数据的干扰同时优化访问效率。虚拟化支持在虚拟化环境中SMMU为每个虚拟机提供独立的地址空间映射表实现内存的隔离保障虚拟机间不能互相干扰提升了虚拟化平台的安全性和稳定性。中断处理SMMU在某些实现中如GICv3可能间接参与中断路由和管理特别是与中断的虚拟化处理确保中断能被正确、高效地路由至目标处理器。内存属性管理SMMU还可以控制内存访问属性如是否缓存、共享与否、访问权限等进一步细化内存管理提升系统整体性能和安全性。组件与实现•Stream Table根表基地址寄存于寄存器中是SMMU查找中断或DMA请求映射的起点。•Context Descriptor描述符定义了第一阶段映射表的基地址与第二阶段配置相关联。•Translation Tables用于实际的地址转换依据不同阶段的映射表结构完成从虚拟到物理地址的映射。综上ARM SMMU是系统中一个关键的组件它对内存访问的高效、安全控制和虚拟化支持至关重要特别是在高性能、多核和异构计算系统中。SMMUsystem mmu),是I/O device与总线之间的地址转换桥。它在系统的位置如下图它与mmu的功能类似可以实现地址转换内存属性转换权限检查等功能。为什么需要SMMU了解SMMU出现的背景需要知道系统中的两个概念DMA和虚拟化。DMA(Direct Memory Access直接内存存取, 是一种外部设备不通过CPU而直接与系统内存交换数据的接口技术 。外设可以通过DMA将数据批量传输到内存然后再发送一个中断通知CPU取其传输过程并不经过CPU 减轻了CPU的负担。但由于DMA不能像CPU一样通过MMU操作虚拟地址所以DMA需要连续的物理地址。虚拟化在虚拟化场景 所有的VM都运行在中间层hypervisor上每一个VM独立运行自己的OSguest OS,Hypervisor完成硬件资源的共享, 隔离和切换。但对于Hypervisor GuestOS的虚拟化系统来说, guest VM使用的物理地址是GPA, 看到的内存并非实际的物理地址(也就是HPA)因此Guest OS无法正常的将连续的物理地址分给硬件。因此为了支持I/O透传机制中的DMA设备传输而引入了IOMMU技术ARM称作SMMU。总而言之SMMU可以为ARM架构下实现虚拟化扩展提供支持。它可以和MMU一样提供stage1转换VA-PA, 或者stage2转换IPA-PA,或者stage1 stage2转换VA-IPA-PA的灵活配置。VA虚拟地址IPA: 中间物理地址PA物理地址SMMU的地址映射和隔离功能但是其实现比较复杂对软件的要求也比较高。如果不需要地址映射另外粉笔系统隔离也仅仅做一些简单的例如安全世界和非安全世界那或许不适合使用SMMU使用tzc的ip更适合。2.7 CMNARM发展了一种介于总线和NoC之间的连接系统称之为CMNCoherent Mesh Network主要用于连接CPU内核也可以CPU内核和加速器之间的连接。采用MESH网格结构但没有路由功能本质上还是总线但MESH网格支持的单元很多远比一般总线要多最高可支持512核支持512MB的L3缓存目标市场主要是HPC领域。以cmn600AE为例官方文档参考https://developer.arm.com/Processors/CoreLink CMN-600CoreLinkCMN600AE一种支持车规级安全功能的CoherentMeshNetwork强调其功能安全合规性、高性能、可靠性以及低功耗特性。对外支持AMBA CHI/ACE-LITE等接口内部改用路由结构转发数据并提供硬件一致性和系统缓存还支持多芯片互联。CMN600在T16FFC上可以做到2Ghz另外AE版本增加了车规芯片的安全功能总线内部采用EDC检查接口采用的奇校验。CMN-600AE应用于整个soc之间的cache一致性具有以下特点功能安全合规性该网络符合功能安全标准例如ISO 26262汽车电子领域的功能安全标准或IEC 61508工业自动化领域的功能安全标准等。高性能CMN-600AE采用了先进的连通性算法和协议以提供低延迟、高带宽和高吞吐量的数据传输。可靠性该网络具有内建的容错机制能够在节点故障时自动重新路由数据流确保系统的连通性和可靠性。低功耗CMN-600AE优化了功耗可以在满足高性能需求的同时降低能源消耗。例如上图为一个CMN 2X2的mesh结构。对DDR发起访问的master为CPU和GPUCPU内部有自己的L1/L2/L3cache当GPU发起DDR访问时会通过HN-F节点去管理整个系统的cache一致性。SoC中的设备比如Core、L3缓存、DDR控制器等先连接到Node上然后通过XPCrosspoint水平和垂直互联拓扑图如下CHI协议CHI 的全称是Coherent Hub Interface。CHI 协议是 AMBA的第五代协议可以说是 ACE 协议的进化版将所有的信息传输采用包packet的形式来完成。但是从接口的角度看CHI 和 ACEAXI 这些协议完全不一样了一个RN会产生 transactionreadwritemaintenance给 HNHN接收并对 RN发来的请求进行排序产生 transaction 给 SNSN接收这些请求返回数据或者响应。问题来了transaction 如何在系统中的节点间路由呢首先CHI 协议规定系统中的每个节点必须有一个节点号Node ID。系统中的每个 RN 和 HN 内部要有一个系统地址映射System Address Map以后简称 SAM负责把地址转换成目标节点的 ID。也就是说RN 的 SAM 负责把物理地址转换成 HN 的ID而 HN 的 SAM 需要把物理地址转换成 SN 的 ID。看下图的一个简单例子• RN0根据内部的SAM知道要把请求发给HN0TgtID是HN0SrcID是RN0•HN0在通过内部的SAM知道要继续发给SN0ReturnNID是RN0•SN0接收请求返回数据HomeNID是HN0TgtID从HN0的ReturnNID而来•RN0接收到SN0的数据响应返回CompAck给HN以结束此次transactionTgtID是HN0从HomeNID而来下图展示了一个3*4的互联Mesh用于具有多个RNF实例的大型系统配置包含的Node有HN-F、RN-D、SN-F和HN-D。每个互联的Mesh以左下角的XP为坐标原点建立二元坐标系XY每个XP有若干个Port用来连接具体的设备基于此设备可以通过一个4元组X Y Port DeviceID 唯一标示分别代表设备所在XP的坐标Port以及设备ID。在mesh的架构中CMN600网络提高性能的方法1、mesh的架构层通过多级的cache以及设计HNF node可以去snoop cluster中的cache提高性能2、协议层CHI协议中支持DMT、DCT、和prefetch功能提高性能3、soc层支持qos机制来提高性能qos的value一共有4bit值为0-15值越高优先级越高2.8 GICGIC 的全称为 General Interrupt Controller主要作用可以归结为接受硬件中断信号并进行简单处理通过一定的设置策略分给对应的CPU进行处理。这里以GIC600AE有功能安全功能为例ARM官网手册https://developer.arm.com/documentation/101206/latest/这里以gicv3为例gicv4跟gicv3相比功能差异不大只是提高了虚拟化的性能增加了直接注入虚拟中断的能力和LPI中断注入加速的能力。gic网上的资料比较多这里挑拣一些。一些基本术语如下ARM四种中断类型SGI: Software Generated Interrupt软件产生中断中断号是 0-15。通过向SGI寄存器写数触发可用于CPU间的通信比如时间同步全局进程调度信息等。每个 PE 都有这么多 SGI 号。The Redistributor provides the configuration settings for PPIs and SGIs.PPI: Private Peripheral Interrupt私有外设中断中断号是 16~31。这些中断一般是发送给特定的CPU的比如每个CPU有自己对应的 Generic Timer产生的中断信号就发送给这个特定的CPU进行处理。每个 PE 都有这么多 PPI号。The Redistributor provides the configuration settings for PPIs and SGIs.SPI: Shared Peripheral Interrupt共享外设中断中断号是 32~1019。比如按键触发一个中断手机触摸屏触发的中断共享的意思是说可以从多个 PE 中选择一个发送处理当然也可以指定发送给某个 PE。The Distributor provides the routing configuration for SPIs, and holds all the associated routing and priority information. 特殊中断号。1020-1023。这个在 GICv3 中用于指示特别的场景例如给 EL3 的软件使用。保留中断号1024-8191。LPI: Locality-specific Peripheral Interrupt局部外设中断中断号 8192。LPI 没有 active or active and pending state得到响应后由处理器自动转入 inactive 状态。LPIs are new in GICv3, and they are different to the other types of interruptin a number of ways . In particular, LPIs are always message-based interrupts,and their configuration is held in tables in memory rather than registers. NOTE: LPIs are only supported when GICD_CTLR.ARE_NS1.中断号也叫INTID如下图gicV3四大组件distributorSPI中断的管理将中断发送给redistributorredistributorPPISGILPI中断的管理将中断发送给cpu interfacecpu interface传输中断给coreITS用来解析LPI中断其中cpu interface是实现在core内部的distributorredistributorITS是实现在gic内部的。cpu interface和gic的redistributor通信通过AXI-Stream协议来实现通信。每个core连接一个cpu interface而cpu interface会连接gic中的一个redistributor。redistributor的标识和core的标识一样。中断分组gicv3将中断分成了2个大组group0和group1。group0提供给EL3使用group1又分为2组分别给安全中断和非安全中断使用 以下是IRQ,FIQ与组的对应关系。关于ARM EL的等级如下中断生命周期generate外设发起一个中断distributedistributor对收到的中断源进行仲裁然后发送给对应的cpu interfacedelive****rcpu interface将中断发送给coreactivatecore通过读取 GICC_IAR 寄存器来对中断进行认可priority drop: core通过写 GICC_EOIR 寄存器来实现优先级重置deactivationcore通过写 GICC_DIR 寄存器来无效该中断这个中断生命周期和gicv2的中断生命周期是一样的。中断流程下图是gic的中断流程中断分成2类一类是中断要通过distributor比如SPI中断一类是中断不通过distributor比如LPI中断中断要通过distributor的中断流程外设发起中断发送给distributordistributor将该中断分发给合适的re-distributorre-distributor将中断信息发送给cpu interface。cpu interface产生合适的中断异常给处理器处理器接收该异常并且软件处理该中断LPI中断流程Locality Specific InterruptsLPI这是一个与GICv3及之后版本相关的概念。LPI中断是GIC架构中用来优化中断管理的一部分特别是针对PCI Express (PCIe) 设备的中断处理它与传统的共享中断线方法不同提供了更高效的中断处理机制。以下是LPI的主要特点和工作原理基于消息的中断LPI中断不同于传统的硬件中断线机制它基于消息传递即中断信号通过写入内存中的特定地址中断向量寄存器来触发而非通过物理线路。中断优化LPI机制设计用于优化了中断处理减少中断延迟和提高吞吐量特别是在多核和虚拟化环境中。它避免了物理中断线的限制简化了系统设计和扩展性。中断状态表LPI中断的状态信息存储在内存中GIC通过配置的中断状态表Pending状态表来跟踪这些中断这允许快速查询和处理状态减少了硬件开销耗。GICv3及以后支持GICv3开始引入了对LPI中断的直接注入支持包括了中断状态表和中断配置寄存取址等而GICv4在此基础上进一步优化如支持虚拟中断直接注入到虚拟机。中断路由与优先级LPI中断也涉及到中断的路由和优先级管理GIC的Distributor组件会根据中断的属性和系统策略决定如何路由到适当的CPU核心以及处理的优先级。综上所述LPI在GIC框架下是针对高性能和高效中断处理的一个设计特别是在现代的多核处理器和虚拟化系统中它利用内存消息机制替代传统的硬件中断线优化中断管理提升了系统响应速度和效率。其在计算机体系结构中软硬件融合中属于硬件软化来提高性能和灵活度。再来看看中断控制器GIC600AE。以AE结尾的IP表示在原有的基础上做了功能安全设计可以支持到Asil-D。GIC600AE结构如下图和处理器一样GIC600AE的逻辑部分是靠锁步来支持Asil-B/D内存部分是ECC。不同的是不像处理器是一个单一硬核GIC600AE是一个分布式的结构布局布线可以分开只是在中心有个分配器Distributor。每个处理器附近的子分配器Redistributor和分配器之间就需要安全总线协议设计这就是新的AMBA点对点功能安全扩展可以看到的是各类AMBA的地址和数据线接口上均添加了奇偶校验这也是ISO26262所要求的传输线安全措施之一对于重置和时钟P/Q通道等信号大多采用复制的方式来保护而对于AXIS端口则采用负载加上CRC的方法免去添加管脚。由于中断控制器不像处理器可以有中断系统来处理各类错误和失效因此GIC600AE在分配器中添加了一个错误管理单元可以把我们所提及的各类错误做集中管理记录并上报。此外在分配器与子分配器之间GIC600AE还添加了看门狗防止超时未响应。2.9 外设常见的一些外设如下篇幅有限下一篇单独讲解这些高低速外设。其实这些外设很多是所有子系统共用的并不是CPU子系统独有只是也连接到CPU子系统里面其可以访问使用。crumailboxuartwdtpvtdmausbethUFSefuse3. 总结辅助驾驶的芯片框架图和中控不同辅助驾驶需要感知和决策是一个复杂的实时运算过程没有办法通过安全岛监测来达到高等级安全只能通过处理器本身来保证。所以这里的处理器全部换成了带冗余设计的A76AE和A65AE。虚拟化在这个系统里并不是必须MMU600AE仅仅是为了虚实地址转换。由于没有采用虚拟机各个处理单元之间的数据隔离可以靠CMN600AE的MPU来完成。没有经过CMN600AE的设备需要在和总线之间添加MPU来实行地址保护并且所有的MPU配置要保持一致。另一方面使用MPU也限制了分区不能太多否则就需要映射到内存。到底使用虚拟机还是MPU进行隔离需要看应用来决定。另外如果需要片间互联那所有主设备都应该通过NoC AE形成子网连到CMN600AE。这个框架的计算流是这样的C71Asil-B把数据从传感器收集做固定的图像信号处理把结果放到DDRA65AE读取数据进行车道检测等传统的矢量运算。相对于大核A65AE提供了高能效比的运算能力适合多路并行计算也可以把任务丢到图形处理器来运算延迟稍大能效比也很高。如果涉及神经网络运算那A76AE会把任务调度到AI****加速器上同时在算子不支持的情况下负责部分计算也可以把所有神经网络运算调度到图形处理器这样就不存在算子不支持的问题。当然对于神经网络计算图形处理器能效比还是赶不上专用加速器。A76AE作为大核具有很高的单线程性能可以用来做辅助驾驶的决策。CMN600AE作为桥梁连接了所有设备并提供高带宽硬件一致性以及系统缓存。由于总线支持单向硬件一致性图形处理器和AI加速器从处理器拿数据的时候处理器不用刷新缓存从而减少延迟。当然由于受布线和接口协议限制有些对延迟不敏感的主设备还是需要通过NoC连到CMN600AE。汽车芯片的关键是实时性功能安全电气虚拟化。功能安全最复杂需要IP级就开始支持。如果不符合那需要场景分析做分解用最少的代价实现安全。参考SoC芯片设计系列—ARM CPU子系统组件介绍-公众号SoC芯片向7nm时代的性能巅峰出击ARM Cortex-A76架构解析ARM DSU(DynamIQ™ Shared Unit概述ARM一致性总线CMN600AEARM GIC一 GIC V3架构基础学习笔记。ARM GIC四 gicv3架构基础ARM攒机指南之汽车篇后记其实题目CPU子系统非常的大展开来说软硬件非常的多这里从SoC设计角度挑了一些重点。如果在使用SoC的过程中那么几千页的编程手册一定要多看看。“啥都懂一点啥都不精通干啥都能干干啥啥不是专业入门劝退堪称程序员杂家”。欢迎各位有自己公众号的留言申请转载纯干货持续更新欢迎分享给朋友、点赞、收藏、在看、划线和评论交流公众号“那路谈OS与SoC嵌入式软件”欢迎关注个人文章汇总https://thatway1989.github.io

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2464487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…