news 2026/2/28 7:15:40

arm pl320 学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
arm pl320 学习

1. IPCM 模块简介(Introduction)

1.1 IPCM 是什么?

PL320 IPCM 是一个高度可配置的核间通信硬件模块,主要能力包括:

  • 向其他 CPU 核发送中断

  • 随中断携带少量数据(Mailbox Data)

  • 支持一对一 / 一对多的消息通信

  • 支持自动应答(Auto Acknowledge)

  • 支持邮箱链式发送(Auto Link)

IPCM 通过AMBAAHB接口被各个 CPU 核访问,常与:

  • Core Identification Module(PL321)

  • 中断控制器(如 VIC / GIC)

一起使用,构成完整的多核通信体系。

注意channel有两个含义,一个mbox内部的channel和硬件定义的channel id和cpu绑定的概念


2. 功能架构总览(Functional Overview)

2.1 模块整体结构

IPCM 主要由三部分组成:

  • AHB接口

    • 所有寄存器通过 AHB 访问

    • 支持多个 CPU 核同时访问

  • Mailbox 与控制逻辑

    • 1~32 个 Mailbox

    • 每个 Mailbox 具有独立的源、目的、中断、数据寄存器

  • 中断生成逻辑

    • 将 Mailbox 状态映射为最多 32 路中断输出(IPCMINT31:0)


2.2 IPCM 在多核系统中的位置

典型系统中:

  • 每个 CPU 核:

    • 有本地 AHB

    • 有自己的中断控制器

  • IPCM:

    • 挂在共享 AHB 上

    • 中断线连接到各个核的中断控制器

这样任何一个核都可以通过 IPCM 给其他核发消息。


3. IPCM 的基本通信模型

3.1 Channel ID 的概念

IPCM 用ChannelID来抽象“中断接收者”:

  • Channel ID 是one-hot 编码

  • 每一位对应一个 IPCMINTxxx 中断输出

  • 一个核可以有一个或多个ChannelID

例如:

Channel ID中断输出
0x1IPCMINT000
0x2IPCMINT111
0x4IPCMINT222

3.2 一个 Mailbox 包含什么

每个 Mailbox 内部包括:

  • Source Register

    • 表示当前 Mailbox 被哪个核“占用”

    • Channel id不是mbox的通道,而是通往某个cpu的cpu编号,0表示空闲,mailbox表示一个mbox channel

    • 这里表示src需要接收ack的中断

  • Destination Register

    • 指定消息要发送给哪些 Channel ID

  • Mask Register

    • 控制是否对某个 Channel ID 产生中断

  • Mode Register

    • Auto Acknowledge / Auto Link

  • Send Register

    • 触发发送 / 应答中断

  • Data Registers(0~7 个)

    • 存放消息数据

Mailbox 的设计目标很明确:中断 + 少量payload


4. IPCM 的工作流程(Functional Operation)

4.1 基本消息发送流程

一个最典型的流程如下:

  • 源核占用 Mailbox

    • 写 Source Register(one-hot Channel ID)

  • 设置目标核

    • 在 Destination Register 中 OR 多个 Channel ID

  • 配置中断 Mask

  • 写入数据寄存器

  • 写 Send Register bit0

    • 触发目的核中断

  • 目的核处理中断

  • 应答(Acknowledge)

    • 手动或自动返回给源核


4.2 Auto Acknowledge(自动应答)

Auto Acknowledge使能时:

  • 多个目标核都必须清除自己的中断

  • 当 Destination Register 变为 0:

    • 硬件自动向源核发送应答中断

  • 应答数据与原始数据相同


4.3 Auto Link(邮箱链式发送)

Auto Link 允许:

  • 将多个 Mailbox 串成一个“发送队列”

  • 前一个 Mailbox 被应答后:

    • 不打断源核

    • 自动触发下一个 Mailbox 发送

mbox0搞完就到了mbox1,其实是两个mbox的ch但是这里搞得好像是两个mbox


5. 可配置能力(Configuration)

IPCM 在综合时可配置三个参数:

参数范围
Mailbox 数量1 ~ 32
每个 Mailbox 的 Data 寄存器数0 ~ 7
中断输出数1 ~ 32

这些配置通过硬件引脚:

  • MBOXNUM

  • INTNUM

  • DATANUM

并反映在Configuration Status Register中,方便驱动自动识别能力。


6. 典型通信示例分析

6.1 Core0 → Core1 单次消息

关键步骤:

  • Core0 占用 Mailbox0

  • 设置 Core1 为 Destination

  • 写数据

  • Send bit0 → Core1 中断

  • Core1 读取数据

  • Core1 Send bit1 → Core0 应答

  • Core0 释放 Mailbox


6.2 背靠背消息(Back-to-Back)

  • 同一个 Mailbox

  • 多次 Send / Ack

  • Mailbox 不释放

  • 减少仲裁与配置开销


7. 设计特点与适用场景总结

7.1 IPCM 的优势

  • 硬件级同步,低延迟

  • 结构简单,软件易实现

  • 天然支持 SMP / AMP

  • 非常适合:

    • 核间控制消息

    • 电源管理

    • 固件与 OS 通信

    • Secure / Non-secure world 通信

7.2 IPCM 的局限

  • 数据量小(最多 7 × 32bit)

  • 更偏“信号 + 控制”,不是高速数据通道

  • 更适合作为:

    • kick / notify / command

而不是 bulk data 传输。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/21 15:53:05

华为激活组织的“五大引擎”与“四驾马车”

在瞬息万变的商业环境中,企业最大的危机往往不是来自外部,而是内部的僵化与活力丧失。如何打破大企业病?如何让听得见炮声的人呼唤炮火?本文结合华为资深专家吕远洋的分享,为你揭秘激活组织活力的BRAVE模型与管理增效的…

作者头像 李华
网站建设 2026/2/21 10:44:09

娴嬭瘯鏂囩珷

娴嬭瘯鏂囩珷 杩欐槸涓�涓祴璇曟枃绔犵殑鍐呭锛岀敤浜庨獙璇丆SDN鏂囩珷鍙戝竷鍔熻兘鏄惁姝e父宸ヤ綔銆�

作者头像 李华
网站建设 2026/2/15 12:30:46

pytest 在命令行调试单个测试用例

在进行 Python 测试时,我们经常需要针对性地运行或调试单个测试用例,而不是执行整个测试套件。pytest 提供了多种灵活的方式来实现这一需求。本文将详细介绍如何在命令行中精准地调试单个测试用例。 环境准备 创建示例测试文件 test_math_operations.py&…

作者头像 李华
网站建设 2026/2/22 3:05:24

谁懂啊!这些专业论文 AI 写作软件,拯救我的毕业论文

作为一名应届毕业生,最近的生活被毕业论文按在地上反复摩擦,谁懂这种焦虑啊!熬了好几个大夜,选题改了八遍,框架被导师打回五次,好不容易憋出初稿,查重率直接飙到 40%,对着满屏的红色…

作者头像 李华
网站建设 2026/2/24 12:08:40

mirror_fold.py_utils_0207curso

import osimport randomimport timefrom typing import Dict, Optional, Tupleimport numpy as np# 后视镜折叠场景配置(请按你的4种分辨率填写)# key: (width, height) value: (x1, y1, x2, y2) 车辆黑色区域在原图上的像素坐标MIRROR_FOLD_CAR_BOXES:…

作者头像 李华
网站建设 2026/2/26 7:17:54

2026年博士论文去AIGC痕迹:10%以下达标攻略

2026年博士论文去AIGC痕迹:10%以下达标攻略 博士论文AI率要求最严格:10%以下,部分985高校甚至要求5%以下。 我一个博士师兄,论文AI率12%,本来以为稳了,结果学校要求10%以下,只差2个点被打回来…

作者头像 李华