ARM64 Virtualization
ARM64虚拟化基于ARMv8-A架构的异常等级和两阶段地址转换机制实现,涵盖平台虚拟化、资源虚拟化与应用程序虚拟化三类。通过Hypervisor在EL2控制虚拟机,利用硬件辅助技术管理内存(Stage 1&2页表)、I/O(软件模拟、设备透传、SR-IOV)和CPU(vCPU调度),并处理来自EL1的异常与中断,确保资源隔离与性能。
ARM CHI
ARM CHI是AMBA 5中定义的第五代缓存一致性协议,是ACE的进化版,专为高性能多核处理器系统设计。它采用分层设计(协议层、传输层、链路层),基于包通信,使用网格(mesh)结构而非ACE的crossbar结构,引入请求节点(RN)、主节点(HN)和从节点(SN)概念,支持更多缓存一致性事务及DCT、DMT、DWT等优化操作。
ARM ACE
ARM ACE(AXI Coherency Extensions)是基于AXI总线的硬件缓存一致性解决方案,通过新增信号和传输通道实现snoop机制,支持多个带cache的master之间的系统级缓存一致性,包含5状态cache状态机、共享域划分、exclusive access和DVM等功能,ACE-Lite用于无cache的IO设备。
ARM AXI
ARM AXI是AMBA总线中的高性能内部同步串行总线,支持独立的地址/数据通道、burst传输、乱序传输及非对齐数据传输,通过五个独立通道(读地址、读数据、写地址、写数据、写回应)和VALID/READY握手协议实现高带宽、低延迟的传输,适用于SOC内部互连。
ARM SMMUv3
ARM SMMUv3是ARM的IOMMU实现,将设备访问的IOVA转换为PA,解决DMA安全问题和虚拟化性能损失。支持两阶段地址转换(Stage1和Stage2)和Bypass。MMU-600是基于SMMUv3.1的控制器,包含TBU(TLB缓存)和TCU(地址转换控制单元),通过DTI连接。编程接口使用StreamID索引Stream Table,SubstreamID(PCIe为PASID)索
ARM SVE/SVE2
ARM SVE/SVE2 是面向高性能计算和机器学习的可伸缩矢量指令集,采用可变矢量长度编程模型(VLA),具有32个可变长Z寄存器、16个预测寄存器P和首次故障寄存器FFR。其特有编程模式包括:基于预测寄存器的数据元素活跃状态管理、聚合加载和离散存储、以预测寄存器控制循环,以及利用FFR实现软件推测的向量分区。SVE在ARMv8.2引入,SVE2在ARMv9加入,指令集涵盖加载存储、向量移动、整
ARM Neon Instruction
ARM Neon指令集支持SIMD和浮点运算,矢量寄存器以128位(Vn)、64位(Dn)等位宽划分通道,通过通道组织数据。浮点数遵循IEEE 754标准,单精度使用32位Sn寄存器,双精度使用64位Dn寄存器,通过符号位、阶码(含偏移量)和尾数表示。FPCR寄存器控制半精度浮点格式(IEEE 754-2008或ARM替换实现)及NaN默认值处理。
ARM Atomic Operation
ARMv8架构通过Load-exclusive/Store-exclusive指令(LL/SC)和ARMv8.1开始支持的LSE原子指令(如CAS、Atomic memory operation)实现原子操作,用于解决多线程并发中的“读-修改-回写”问题,并提供Linux内核atomic_t类型支持;独占监视器机制保证内存独占访问,且LSE指令提升了大规模系统下的性能。
ARM Memory Ordering and Memory Barrier
ARMv8架构采用弱一致性内存模型,处理器可对普通内存访问进行乱序执行,通过DMB、DSB和ISB三类内存屏障指令保证访问顺序。DMB仅保证数据访问序列,DSB强制之前所有指令完成后才能执行后续指令,两者均可指定共享域和读写类型参数。
ARM TLB
TLB是缓存虚拟地址到物理地址转换的cache,采用两级设计(L1全相连、L2组相连),通过ASID机制解决进程切换时的同名问题,利用nG属性区分全局与进程特有的TLB条目,支持连续块条目以高效利用空间,并使用TLBI指令使失效的映射条目失效。
