文章目录1. 存储器系统整体架构1.1 存储资源组成1.1.1 内核私有存储单Core独立选配1.1.2 内核私有AXI4主接口每核独立1.1.3 全集群共享AXIS接口128bit1.2 核心工作规则2. TCM紧耦合存储器2.1 容量配置2.2 基址与使能控制2.3 内存属性3. 一级L1缓存I‑Cache/D‑Cache可选配、相互独立3.1 指令缓存I‑Cache3.2 数据缓存D‑Cache关键特性3.3 Cache RAM物理组织3.4 缓存配套功能4. L1缓存调试直接访问5. 四大AXI主/从接口AXIM、LLPP、Flash、AXIS5.1 AXIM内核私有·128bit标准AXI4·系统主接口5.2 LLPP低时延外设端口32bit AXI4·外设专用永远非缓存5.3 Flash接口128bit只读AXI子集·外挂ROM无写通道5.4 AXISCluster共享从接口·16MB地址·外部访问TCM专用6. ECC错误检测与容错机制7. 独占访问LDREX/STREX8. 总线超时整体设计总结1. 存储器系统整体架构1.1 存储资源组成1.1.1 内核私有存储单Core独立选配可选一级指令缓存I‑Cache、一级数据缓存D‑Cache可选紧耦合存储器TCM分为ATCM/BTCM/CTCM统一型存储器既可存指令也可存数据。1.1.2 内核私有AXI4主接口每核独立LLPP32bit位宽AXI4接口低速外设专用Flash接口128bit只读AXI子集接口外挂片上/片外FlashAXIM128bit标准AXI4主接口外接主存与通用外设系统主数据通路1.1.3 全集群共享AXIS接口128bit跨核外部主控接口唯一用途外部总线访问所有内核的TCM存储。1.2 核心工作规则TCM访问逻辑TCM内置多路交叉开关支持指令侧、数据侧、AXIS三方并发访问多源同地址访问采用固定优先级QoS仲裁TCM是R52访问时延确定性最高的存储Cache访问规则TCM、LLPP访问永远不会进入D‑Cache仅AXIM/Flash访问可按需缓存数据Cache固定写直达Write‑Through所有写操作同步落地外部总线MPU内存保护所有指令/数据访问必须经过MPU内存映射查询MPU输出访问权限与内存属性地址禁止跨多TCM区域、多外设区域重叠命中否则为非法访问独占同步机制内核内置本地独占监视器依托LDREX/STREX独占指令实现同内核进程信号量与同步共享内存独占需要配套外部全局监控逻辑。2. TCM紧耦合存储器TCM为实时系统核心高速确定性内存单内核搭载ATCM/BTCM/CTCM三块独立TCM。2.1 容量配置单块TCM可选0KB未集成/8KB~1MB2的幂次规格三块容量可独立配置支持配置访问等待周期不同TCM可存在访问时延差异。2.2 基址与使能控制复位配置引脚CFGTCMBOOTx有效时ATCM默认开启、基址0x00000000其余TCM关闭、地址未知软件配置通过IMP_ATCM/BTCM/CTCMREGIONR寄存器配置基址基址必须与TCM容量对齐EL2Hypervisor、EL0/EL1可独立开关TCMTCM禁用后原TCM地址访问自动路由至AXIM/Flash/LLPPEL1修改TCM配置可被EL2捕获HCR.TIDCP1。2.3 内存属性已使能TCM硬件固定为非缓存、非共享普通内存不受MPU内存类型配置影响但读写权限沿用MPU同地址权限AXIS可读写TCM但会抢占TCM带宽、劣化访问确定性。3. 一级L1缓存I‑Cache/D‑Cache可选配、相互独立I/D Cache均为4路组相联、64Byte缓存行可选4KB/8KB/16KB/32KB四种容量仅AXIM、Flash的访问可进入缓存。3.1 指令缓存I‑Cache预取顺序指令自动预取下一缓存行预取单元PFU依托分支预测提前预取非顺序地址预取开关由CPUACTLR.L1IPFCTL管控。3.2 数据缓存D‑Cache关键特性强制写直达WT即便MPU配置为回写WB硬件强制走WT标记为共享Shareable的内存区域一律禁用缓存瞬态Transient内存提示被硬件忽略统一按非瞬态处理Miss‑under‑Miss流水线连续缺失时最多同时发起3个缓存行填充AXIM挂载4个数据预取器基于4KB区间访存规律预取Flash接口无硬件预取一致性R52无内核间硬件Cache一致性单内核为独立内部共享域多内核一致性由外部系统实现。3.3 Cache RAM物理组织地址拆分规则32位地址划分为Tag标签位、Index索引位、行内双字偏移addr[5:3]、字节偏移addr[2:0]随4/8/16/32KB容量变化索引位长度ICacheTag RAM分4物理BankData RAM逻辑路→物理Bank换算Bank(逻辑Way XOR 双字偏移)0x3Tag附带有效位可选6bit ECC64bit数据搭配7bit ECCDCacheTag架构同ICacheData RAM采用8个物理Bank单Bank32bit一个64bit双字跨相邻两个BankBank位置由(Way双字偏移)3和地址bit2共同决定32bit数据配6bit ECC。3.4 缓存配套功能缓存隔离SegregationIMP_CSCTLR.IFLW/DFLW分配I/D Cache几路资源分别给Flash/AXIM仅复位后首次开启缓存前可配置DCache整体无效EDCCR状态机寄存器EDCCR实现Flash/AXIM对应缓存条目全刷除状态流转Idle→Wait→Active无效期间对应外设访问强制非缓存调试可借助该功能实现Flash/AXIM内存被RAM覆盖写流式Write Streaming针对memset连续整行全写场景连续填满整行无需读入原始数据时自动开启写缺失直接下发总线、取消行填充避免无效数据污染缓存由CPUACTLR.WSTRNOL1ACTL配置触发阈值。4. L1缓存调试直接访问仅EL2特权态可通过CP15的MCR指令读写Cache Tag/Data依靠Rd寄存器编码Way/Set/行内偏移读出数据存入2个只读调试寄存器用于排查缓存与物理内存数据不一致故障。5. 四大AXI主/从接口AXIM、LLPP、Flash、AXIS5.1 AXIM内核私有·128bit标准AXI4·系统主接口仲裁CPUACTLR.AXIMARBCTL配置指令/数据总线访问优先级总线能力最多3笔挂起写、11笔挂起读数据侧8指令侧3单路独占访问AWID3bit、ARID4bitAXI编码ARID区分独占/设备读/指令普通/数据普通四类事务CACHE信号严格映射MPU设备/普通WT/WB四种内存属性权限与安全缓存读统一标记特权访问EL0非缓存/设备访问标记非特权所有传输固定SecureNormal内存VMID0设备内存携带有效VMID超时通过IMP_BUSTIMEOUTR配置超时周期、使能开关、超时事务终止超时触发ERREVENTx[13]。5.2 LLPP低时延外设端口32bit AXI4·外设专用永远非缓存地址配置空间4KB~4MB2的幂分EL2、EL0/EL1独立使能指令取指访问LLPP地址直接触发同步外部异常未使能时数据访问报同步中止传输约束仅INCR1单拍传输、单次≤32bit传输不跨4字节边界Device区非对齐访问触发对齐故障Normal内存非对齐可拆分成多笔AXI传输WSTRB字节选通精准控制写字节总线参数最大2挂起读、8挂起写、1路独占读写AXI ID固定为1CACHE硬件固定为Device-nGnRnE不支持64bit双字独占LDREXD/STREXD超时故障上报ERREVENTx[15]超时配置寄存器同AXIM。5.3 Flash接口128bit只读AXI子集·外挂ROM无写通道地址空间固定128MB单内核独立开关禁用访问触发同步异常缺省不实现ARSIZE/ARCACHE等多组AXI信号事务缓存填充为WRAP464B整行非缓存采用INCR单拍单内核最多4 outstanding读FlashAXIM全局合计最多8个缓存填充ID仅1bit0数据侧、1指令侧附加特性LATEERRFx引脚接收Flash外设可纠错信号内核收到后自动重传不产生异常超时上报ERREVENTx[14]。5.4 AXISCluster共享从接口·16MB地址·外部访问TCM专用地址映射16MB均分4块×4MB每核对应一块单4MB再拆分3×1MB(ATCM/BTCM/CTCM)1MB空闲空闲/越界访问返回DECERRAXI限制仅支持16B、64B两种突发其余突发返回SLVERR64B写突发必须全字节有效不支持独占、CACHE、QoS、安全PROT等AXI字段读写 outstanding深度各12访问权限IMP_SLAVEPCTLR配置仅特权/全权限访问TCM越权返回SLVERR外部AXIS写与内核DMB写同地址存在写重排序MRPATTRx标记重排序行为。6. ECC错误检测与容错机制R52全链路TCM、Cache、四大总线可选ECC/奇偶校验用于功能安全故障检测ECC块粒度TCMATCM64bit/ECC块、BTCM/CTCM32bit/ECC块CacheICache Data64bit、DCache Data32bitTag以整Tag为ECC块总线AXIM64b、LLPP32b、Flash可选64/128b、AXIS64b地址/控制信号32bit ECC握手线可选奇偶校验。故障处理单比特错硬件自动纠错、修正数据回写到RAM双比特错不可纠正TCM读指令→预取中止、读数据→同步数据中止、写→异步中止、AXIS读→SLVERRCache失效对应行、从AXIM/Flash重载有效数据RMW读改写ECC块大于单次访问粒度如单字节写时硬件自动读原有数据→合并新数据→重算ECC→回写错误记录I/D Cache、TCM、Flash各配置2个错误记录寄存器寄存器满溢出后可纠/不可纠错误分别通过ERREVENTx[16/17]上报Flash特有Late可纠错仅重传、不触发异常全局开关复位默认开启全部ECC软件通过IMP_MEMPROTCTLR.RAMPROTEN全局启停ECC。7. 独占访问LDREX/STREX本地独占监视器粒度512bit仅用于同内核TCM/非共享内存进程同步AXIS跨核访问不占用本地监视器共享内存独占本地监视器预校验校验失败则独占事务不再发往外部总线Outer Shareable设备/非缓存普通内存独占需要外部全局独占监视器接口限制Flash只读无独占、LLPP不支持64bit双字独占、AXIS完全不支持独占指令。8. 总线超时AXIM、LLPP、Flash三个接口各自拥有独立可编程超时检测逻辑超时后可选择上报故障信号或直接屏蔽后续总线访问故障分别绑定不同ERREVENTx引脚。整体设计总结Cortex‑R52存储面向汽车/工业高实时安全场景TCM提供极致确定性访问满足硬实时可选L1缓存平衡性能与时序分四类专用AXI接口区分主存/Flash/外设/外部TCM访问接口协议精简降低SoC互联成本全链路ECC保障功能安全满足ASIL等安全规范分层独占MPU分级使能完善存储权限与多虚拟化EL0/EL1/EL2分级管控。