Fork me on GitHub
侧边栏

MPAM BE/ FE 的区别及功能

MPAM DDR 语境里,FEBE 通常表示:

缩写 全称 中文含义 位置/作用
FE Front-End 前端 靠近 CPU/GPU/NPU/DMA 等发起访问的一侧,用于识别、分类、标记请求
BE Back-End 后端 靠近 DDR Controller/Memory Controller 的一侧,用于真正执行带宽限制、优先级控制、统计监控等

1. MPAM DDR 简要背景

MPAM 是 ARM 的 Memory System Resource Partitioning and Monitoring 机制。

它主要用于:

  • 对不同软件实体进行 资源隔离
  • 对不同 VM / Process / Thread / Master 进行 带宽限制
  • 对 DDR、Cache、Interconnect 等资源做 监控
  • 支持 QoS、性能隔离、实时性保障

在 DDR 场景中,MPAM 主要关心:

  • 谁在访问 DDR
  • 访问属于哪个 Partition
  • 该 Partition 能使用多少 DDR 带宽
  • 不同请求之间如何仲裁
  • 每个 Partition 消耗了多少带宽

2. FE 是什么?

FE = Front-End,前端。

它通常位于 请求发起端附近,比如:

  • CPU cluster
  • GPU
  • NPU
  • Display
  • Camera
  • DMA
  • PCIe
  • Modem
  • 其他 bus master

FE 的核心作用是:

  • 接收来自 master 的 memory request
  • 根据请求携带的信息识别来源
  • 给请求打上 MPAM 相关的控制信息
  • 将请求映射到某个 PARTID / PMG
  • 把 MPAM tag 随请求传递到 interconnect 或 DDR path

3. FE 主要负责什么?

FE 主要负责 分类和标记

常见功能包括:

  • 根据 CPU exception level、VMID、ASID、StreamID、MasterID 等区分请求来源
  • 为请求分配 PARTID
  • 为请求分配 PMG
  • 将不同业务流量映射到不同 MPAM partition
  • 将 MPAM 信息插入到 transaction 中
  • 把请求转发给后端 DDR 资源控制单元

可以简单理解为:

FE 不一定直接限制 DDR 带宽,它主要负责判断“这个请求是谁的”。


4. BE 是什么?

BE = Back-End,后端。

它通常位于 共享资源附近,比如:

  • DDR Controller
  • Memory Controller
  • NoC 到 DDR 的出口
  • LLC / SLC / System Cache
  • Interconnect 资源节点

在 MPAM DDR 场景中,BE 通常靠近 DDR 侧。

BE 的核心作用是:

  • 根据 FE 传来的 PARTID / PMG
  • 对 DDR 访问进行仲裁
  • 执行带宽限制
  • 执行优先级控制
  • 执行资源分配
  • 进行带宽统计和监控

5. BE 主要负责什么?

BE 主要负责 控制和统计

常见功能包括:

  • 根据 PARTID 控制 DDR 带宽
  • 对不同 partition 设置最大带宽限制
  • 对不同 partition 设置最小保障带宽
  • 统计每个 partition 的 DDR 访问量
  • 统计 read/write bandwidth
  • 对超限请求进行 throttle
  • 参与 QoS arbitration
  • 对 memory request 做调度控制

可以简单理解为:

BE 负责真正执行“这个请求能用多少 DDR 资源”。


6. FE 和 BE 的关系

整体流程可以理解为:

CPU/GPU/NPU/DMA 等 Master
        |
        v
MPAM FE
识别请求来源,分配 PARTID/PMG
        |
        v
NoC / Interconnect
携带 MPAM 信息传递
        |
        v
MPAM BE
根据 PARTID/PMG 执行限速、仲裁、统计
        |
        v
DDR Controller
        |
        v
DDR Memory

7. PARTID 和 PMG 是什么?

MPAM 中常见两个重要字段:

字段 含义 作用
PARTID Partition ID 表示请求属于哪个资源分区
PMG Performance Monitoring Group 表示性能监控分组

PARTID

PARTID 用于资源控制。

例如:

业务 PARTID
Android foreground app PARTID 1
Background task PARTID 2
Camera PARTID 3
Display PARTID 4
NPU PARTID 5

BE 可以基于 PARTID 对 DDR 做带宽控制。

例如:

PARTID 1: max 8 GB/s
PARTID 2: max 2 GB/s
PARTID 3: min 4 GB/s
PARTID 4: high priority

PMG

PMG 主要用于性能监控分类。

例如:

PMG 0: CPU traffic
PMG 1: GPU traffic
PMG 2: Camera traffic
PMG 3: Display traffic

BE 可以按 PMG 统计 DDR bandwidth。


8. FE 和 BE 的典型区别

对比项 FE BE
全称 Front-End Back-End
中文 前端 后端
靠近位置 请求发起端 DDR/共享资源端
核心作用 分类、标记 控制、仲裁、统计
处理对象 Master request Shared resource access
主要字段 PARTID、PMG 生成/传递 PARTID、PMG 消费/执行
是否直接限 DDR 带宽 通常不是 通常是
是否做监控统计 可能辅助 主要执行点
典型位置 CPU/GPU/NPU/DMA path DDR Controller/NoC DDR出口

9. 一个实际例子

假设系统中有 CPU、GPU、Camera 同时访问 DDR:

CPU request     -> FE 标记 PARTID=1
GPU request     -> FE 标记 PARTID=2
Camera request  -> FE 标记 PARTID=3

Camera request -> FE 标记 PARTID=3

显示更多行

这些请求经过 NoC 到 DDR BE。

BE 上配置:

PARTID=1 CPU     max bandwidth = 6 GB/s
PARTID=2 GPU     max bandwidth = 10 GB/s
PARTID=3 Camera  min bandwidth = 4 GB/s

然后 BE 根据配置控制 DDR 访问:

  • CPU 超过 6 GB/s 时被 throttle
  • GPU 最多能用 10 GB/s
  • Camera 至少保障 4 GB/s,避免丢帧
  • BE 同时统计各 PARTID 的 DDR 使用量

10. 简单理解

可以这样记:

FE:谁发起的?
BE:给它多少资源?

或者:

FE = 分类打标签
BE = 根据标签做控制

更具体一点:

FE 负责把 memory request 标记成某个 MPAM PARTID/PMG
BE 负责根据 PARTID/PMG 对 DDR bandwidth 做限制、保障、仲裁和统计

11. 在 DDR bandwidth debug 中怎么看

如果你在 debug DDR bandwidth、QoS、MPAM 配置,一般需要关注:

FE 侧

确认请求是否被正确分类:

  • CPU/GPU/Camera/Display 是否映射到正确 PARTID
  • StreamID/MasterID 是否匹配
  • PARTID/PMG 是否正确传递
  • OS/Hypervisor 是否正确配置 MPAM context

BE 侧

确认 DDR 侧策略是否生效:

  • 对应 PARTID 是否配置 bandwidth limit
  • 对应 PARTID 是否配置 priority
  • monitor counter 是否在增长
  • throttle 是否被触发
  • DDR controller/NoC 是否支持对应 MPAM feature

12. 总结

MPAM DDR 中:

FE = Front-End
作用:识别请求来源,分配/携带 MPAM PARTID、PMG

BE = Back-End
作用:在 DDR/Memory Controller 侧根据 PARTID、PMG 执行带宽控制、QoS 仲裁和性能统计

一句话:

FE 负责给 DDR 请求打标签,BE 负责根据标签管 DDR 资源。

posted @ 2026-07-15 10:13  yooooooo  阅读(7)  评论(0)    收藏  举报