ARM Cache Coherency
ARM缓存一致性解决多核、DMA及大小核架构中数据在各级缓存和内存的不一致问题,核心协议包括MESI(基于监听)和MOESI(ARMv8采用)。硬件方案(如ACE/CHI接口)对软件透明但硬件复杂,软件维护则需手动清缓存。伪共享问题可通过缓存行填充或对齐解决。
ARM Cache
ARM Cache分为指令缓存、数据缓存和统一缓存,采用直接映射、组相联或全相联方式映射内存地址。物理缓存(PIPT)使用物理地址索引,虚拟缓存(VIVT)使用虚拟地址但存在别名和同名问题。VIPT缓存以虚拟地址的页内偏移作为索引、物理地址作为标签,可避免别名问题(需索引位不超过页内偏移)。多级缓存(如L1、L2、L3)按层级处理数据请求,减少访问延迟。
ARM Memory Management
ARM内存管理采用虚拟地址到物理地址的映射机制,通过多级页表(如AArch64的四级页表)实现按需映射,减少内存浪费。页表描述符支持大页块映射和细粒度页面映射,并包含共享域等属性,确保访问权限和内存一致性。
ARM Interrupt Controller
ARM核心通过nIRQ和nFIQ管脚处理中断,PSTATE的I、F位控制屏蔽。树莓派4B支持GIC-400和Legacy Interrupt两种方式。文章重点介绍Legacy Interrupt:中断源包括ARM Core(generic timer、PMU等)、ARM_LOCAL、ARMC和VideoCore,通过层次化状态寄存器读取中断。以EL1 Non-secure generic time
ARM Exception Model
ARM64异常模型定义了EL0到EL3四个异常等级,异常分为同步异常(如系统调用、MMU异常)和异步异常(如IRQ、FIQ、SError)。异常发生时,硬件自动保存状态到SPSR_ELx和ELR_ELx,更新ESR_ELx,并跳转到异常向量表;操作系统需设置向量表并处理异常。异常返回通过eret指令恢复PC和处理器状态。异常路由规则由HCR和SCR寄存器配置,决定异常在哪个等级处理。
