M52处理器内部组件详解

M52处理器组件概览 

M52处理器具有固定的和可选的组件块,内部结构如下图所示:

下表描述了M52处理器中各个组件:


  • 如果Cortex-M52处理被配置为包含最少的调试组件,那M52内部至少包含了ETM和ITM组件;
  • 如果Cortex-M52处理被配置为reduce或full调试组件,那ETM和ITM组件是可选的;
  • 如果Cortex-M52处理被配置为reduce或full调试组件,那BPU和DWT组件是固定包含在内的;

下表描述了M52内部包含功能安全和测试相关的组件

M52处理器核

M52处理器内部有与数据处理单元(Data Processing Unit,DPU)紧密耦合的指令提取单元(Insturction Fetch Uint,IFU)

DPU内部包含以下逻辑:

  • 解码并执行整数指令
  • 处理异常进入和退出时所需的寄存器转移操作

M52处理器核具备以下特性

  • 一个有序的四级流水结构
  • 两个计算逻辑单元(Arithmetic Logic Units,ALUs),一个ALU用于简单的算数运算,一个ALU用于处理移位和包括在DSP扩展中的SIMD操作
  • 当M52处理器中配置了M-profile Vector Extension(MVE)时,内核只能处理一个32位负载操作
  • N52处理器为哈佛总线结构(32bit位宽指令总线和32bit位宽数据总线),指令总线支持指令矢量提取能力,可以在进入异常时优化计算负载的操作时间
  • 优化的整数寄存器库端口,以实现能效操作
  • 支持操作数依赖的早期终止的整数除法单元。在此上下文中,早期终止是指在整数除法单元的预期周期数之前终止的操作。早期终止能力取决于进入流水线的数据
  • 在大多数情况下,单周期分支延迟,无需分支预测要求
  • 有限的双发射常见16位指令对
  • 支持异常可继续的加载和存储多个访问
  • 指令队列,以解耦指令获取和指令执行

Cortex®-M52处理器核心与扩展处理单元 (EPU) 配合工作,当配置为提供以下支持时:

  • 包括在MVE中的整数和浮点运算操作
  • 根据配置,支持标量半精度、单精度浮点运算操作,或半精度标量、单精度、双精度浮点运算操作

扩展组件

扩展处理单元 (EPU) 包括对 M-profile Vector Extension (MVE) 和半精度、单精度和双精度标量 FPv5 架构中所有指令的支持。

EPU 具有以下功能:

  • MVE 使用 32 位算术和加载/存储数据路径在一个节拍每拍配置中实现。一个节拍是 MVE 指令的 1/4 的执行。指令可以重叠以允许充分利用逻辑,同时保持 32 位乘法累加 (MAC) 的持续带宽
  • 扩展寄存器文件,用于高效矢量操作
  • 浮点 MAC 单元,具有单精度或两个半精度的吞吐量。当 MVE 包含在 Cortex®-M52 处理器中时,每周期执行一次 MAC 指令。当仅配置标量浮点时,每周期执行一次单精度或半精度 MAC
  • 面积优化的双精度浮点实现
  • 支持安全
  • 支持安全扩展,包括懒惰上下文堆栈

为了支持 Arm 定制指令 (ACIs),EPU 包括一个浮点和 MVE CDE 模块。此模块用于执行在浮点和 MVE 寄存器上工作的用户定义指令。如果可选的 EPU 不存在,则可选的浮点 CDE 模块也不存在。

存储组件

Cortex®-M52 处理器的内存组件包括内存认证单元 (MAU) 和内存系统接口,MAU模块框图如下:

Memory Authentication Unit

Memory Protection Unit

内存保护单元 (MPU) 支持 Arm® 受保护的内存系统体系结构 (PMSA)。因此,MPU 提供了可编程的内存保护支持,这些保护与特定软件可控的内存区域相关联。该单元定义了与内存区域相关的内存属性和地址区域的访问权限。内存区域可以编程为在不适当访问时生成故障,例如,由未授权的软件访问。这减少了错误编写的应用程序代码的范围。体系结构包括故障状态寄存器,允许异常处理程序确定故障的来源并采取纠正措施或通知系统。

如果实现了安全扩展,整个 MPU 逻辑可以分为安全和非安全 MPU 区域。

Security Attribute Unit

安全属性单元 (SAU) 根据核心或调试器的安全状态定义和验证对内存的访问。这些状态可以是以下任何一种:

  • 非安全
  • 安全和非安全可调用
  • 安全

TCM Gate Unit

TCM 门控单元 (TGU) 根据访问的安全属性控制软件和 AHB TCM 访问 (TCM-AHB) 对 TCM 的访问

Interface to the IDAU

MAU 包含一个与实现定义的属性单元 (IDAU) 的接口,该单元位于核心外部,不是 Cortex®-M52 处理器的一部分。该单元将内存区域定义为安全、非安全、非安全可调用或免受安全检查。最终的内存区域安全映射是 SAU 和 IDAU 响应的组合

Memory system

M52 处理器的内存系统提供了核心与缓存、外部内存接口和内部内存映射寄存器之间的接口。

内存系统包括:

  • 一个接口到指令紧密耦合内存 (ITCM) 和两个接口到数据紧密耦合内存 (DTCMs),D0TCM 和 D1TCM
  • 一个可配置的主接口,可用于片上或片外内存和设备。主接口可以是 AXI 主 (M-AXI) 接口或 AHB 主 (M-AHB) 接口,具体取决于您的配置。M-AHB 由代码区域 AHB 主接口 (CODE-AHB) 和系统区域 AHB 主接口 (SYS-AHB) 组成
  • 一个外围 AHB (P-AHB) 接口,用于访问外部外围设备
  • 一个 AHB TCM 访问 (TCM-AHB) 接口,用于系统访问 TCMs
  • 一个 L1 指令缓存
  • 一个 L1 数据缓存
  • 一个 L1 统一缓存(仅限于 L1 指令和数据缓存)
  • 一个外部私有外围总线 (EPPB) 接口,用于 CoreSight™ 调试和跟踪组件
  • 一个存储缓冲区 (STB),用于在离开加载/存储流水线并由 DPU 承诺后,保存针对主接口的存储操作。从 STB,存储可以执行以下任何操作:
    • 通过 DCU 请求访问缓存 RAM
    • 请求总线接口单元 (BIU) 启动行填充
    • 请求 BIU 在主接口上写入数据
    • 将存储数据转发到加载流水线
  • 一个存储队列 (SQ),用于在离开加载/存储流水线并由 DPU 承诺后,保存针对 TCM (ITCM 和 DTCMs) 的存储操作。从 SQ,存储可以请求访问指令或数据 TCM

如果存在与同一 32 位对齐的字相关的多个存储事务,STB 可以将这些存储事务合并为一个事务

中断组件

M52 处理器中断组件负责低延迟中断处理,并使 M52 处理器能够进入并从低功耗状态唤醒

NVIC

NVIC与内核紧密集成,以实现低延迟中断处理,NVIC特性如下:

  • 维护 Cortex®-M52 处理器的当前执行优先级
  • 维护所有受支持异常的挂起和活动状态
  • 当挂起异常具有优先级时调用抢占
  • 提供唤醒信号以唤醒 Cortex®-M52 处理器从深度睡眠模式
  • 为内部唤醒中断控制器 (IWIC) 和外部唤醒中断控制器 (EWIC) 提供支持
  • 向其他处理器组件提供优先级和异常信息

M52 处理器中的 NVIC 允许最多 496 个异常,其中 480 个可以是常规外部中断

WIC

M52 处理器支持一个唤醒中断控制器 (WIC) 单元,该单元允许 Cortex®-M52 处理器进入低功耗状态。

支持的两个 WIC:

  • 一个内部唤醒中断控制器 (IWIC),与处理器同步,并包含在 M52 处理器边界内
  • 一个外部唤醒中断控制器 (EWIC),这是一个系统级组件,可以与 M52 处理器异步

M52 处理器支持以下任何一种配置:

  • 无 WIC
  • IWIC
  • IWIC 仅
  • EWIC 仅
  • IWIC 和 EWIC

调试组件

M52 处理器具有可选和可配置的调试和跟踪组件

BreakPoint Unit

一个可配置的断点单元 (BPU) 用于实现断点

Data Watchpoint and Trace

一个可配置的数据监视点和跟踪 (DWT) 单元,用于实现监视点、数据跟踪和系统配置文件

Instrumentation Trace Marcocell

一个可选的仪器跟踪宏单元 (ITM),支持 printf() 风格的调试,使用仪器跟踪

Perfomance Monitoring Unit

一个性能监控单元 (PMU),使软件和调试器能够收集 Cortex®-M52 处理器上发生的事件的统计信息。这些统计信息可用于性能分析和系统调试

ROM Tables

ROM 表允许调试器确定在 M52 处理器中实现了哪些 CoreSight™ 组件

Debug and Trace interface

这些接口适用于:

  • 通过跟踪端口接口单元 (TPIU) 将片上数据传递到跟踪端口分析器 (TPA),包括串行线输出 (SWO) 模式
  • 集成一个调试访问端口 (DAP),这是一个用于控制调试功能的调试端口
  • 集成一个 CoreSight™ 嵌入式跟踪缓冲区 (ETB),这是一个可选的许可跟踪缓冲区组件,用于将跟踪数据写入外部 SRAM

Cross Trigger Interface

交叉触发接口 (CTI) 使调试逻辑和嵌入式跟踪宏单元 (ETM) 能够与其他 CoreSight™ 组件交互

Embedded Trace Macrocell

可选的 ETM 提供仅指令跟踪功能

测试组件

M52 处理器内部的测试组件可以执行在线内存内置自测试 (MBIST) 和软件内置自测试 (SBIST)进行功能逻辑的测试

PMC-100

PMC-100 是一个可选的在线内存内置自测试 (MBIST) 控制器,用于测试 RAM、纠错码 (ECC) 逻辑和任何其他相关联的逻辑

SBIST controller

软件内置自测试 (SBIST) 控制器是一个可选组件,用于测试功能逻辑(不包括内存)

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值