欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > RISC-V AIA学习3---APLIC 第一部分

RISC-V AIA学习3---APLIC 第一部分

2025/3/26 9:38:01 来源:https://blog.csdn.net/weixin_45260499/article/details/146494611  浏览:    关键词:RISC-V AIA学习3---APLIC 第一部分

先介绍一下什么是APLIC

1. APLIC 的背景与必要性

  • 为什么需要 APLIC?
    APLIC 是 RISC-V 架构中升级版的中断控制器,专门处理通过物理线路(而非电子消息)传递的硬件中断。就像传统邮局处理实体信件,APLIC 负责处理这类 “实体中断信号”。

  • 与旧版 PLIC 的区别
    APLIC 是 “高级版”,不兼容旧的 PLIC。就像智能手机不兼容老式大哥大,新系统需要 APLIC 才能支持最新的中断管理功能。

2. 何时使用 APLIC?

  • 无 IMSIC 的系统
    如果 CPU 核心(hart)没有 IMSIC(类似智能分拣中心),所有外部中断必须通过 APLIC(或旧版 PLIC)处理。例如,老式电脑只能通过传统邮局(PLIC/APLIC)接收信件。

  • 有 IMSIC 的系统
    即使 CPU 有 IMSIC(能处理电子消息中断 MSI),某些设备仍可能使用物理线路中断:

    • 成本原因:像老式打印机,添加电子消息功能太贵,不如直接拉条线更省钱。
    • 兼容性:许多设备(如 USB 控制器)必须兼容所有平台,物理线路是通用解决方案。

3. APLIC 的功能与设计

  • 核心作用
    APLIC 就像邮局的分拣中心,负责将物理线路的中断信号转化为 CPU 能处理的格式。例如,将实体信件(线路中断)扫描成电子文档(MSI)再发送给 CPU。

  • 多 APLIC 的情况
    当设备分布在不同物理位置(如多个芯片),可以部署多个 APLIC:

    • 每个 APLIC 负责附近设备的中断转换。
    • 例如,北京的 APLIC 处理北方设备,上海的 APLIC 处理南方设备。

4. 与旧系统的兼容性

  • 替代方案
    旧的 PLIC 仍可使用,但只能处理物理线路中断,无法支持 MSI。就像老式邮局只能处理实体信件,不能发送电子邮件。

  • Duo-PLIC 的尴尬
    曾有一个 “二合一” 设计(Duo-PLIC),可以切换成旧 PLIC 或 APLIC,但可能不会成为标准。类似能插软盘和 U 盘的光驱,但最终 U 盘成为主流。

5. 系统架构示例

  • 无 IMSIC 的系统

  • 有 IMSIC 的系统

6. 多 APLIC 的效率问题

  • 优点
    物理上分散的设备可以就近处理,减少线路延迟。例如,上海的信件直接由上海邮局处理。

  • 缺点
    多个 APLIC 需要更多资源(如内存、电力),可能不如一个大 APLIC 高效。就像每个城市都建邮局,成本高于集中处理。

总结比喻

APLIC 是 RISC-V 架构中的 “智能邮局”:

  1. 处理实体信件(物理线路中断),并将其转换为电子文档(MSI)。
  2. 比旧邮局(PLIC)更高效,但不兼容旧系统。
  3. 在分布式系统中,多个 APLIC 可以分工处理不同区域的信件。
  4. 有了它,即使 CPU 有智能分拣中心(IMSIC),仍能兼容老式设备的中断方式。

一、Interrupt sources and identities

1. 中断源的物理基础

  • APLIC 的 "插座"
    APLIC 就像一个带多个物理插座的插排,每个插座对应一个中断源。这些插座连接到设备或控制器的中断信号线:

    • 例如:打印机连接到插座 1,键盘连接到插座 2
    • 特殊情况:多个设备的中断信号可以合并到同一个插座(电平触发中断)
  • 插座编号规则
    每个插座的编号是 1 到 N(N 最多 1023),0 号无效。就像酒店房间号从 1 开始,没有 0 号房。

2. 中断标识的作用

  • 直接传递模式
    当 APLIC 直接向 CPU 核心(hart)发送中断时:

    • APLIC 的插座编号(1-1023)直接作为 hart 的中断 ID
    • 例如:插座 5 的中断会被 hart 识别为中断 5
  • MSI 转发模式
    当 APLIC 将中断转换为电子消息(MSI)时:

    • 软件会为每个插座分配一个新的 ID(可能与原编号无关)
    • 例如:插座 5 的中断可能被重新编号为 ID 100 发送给 hart

3. 两种模式的对比

4. 特殊配置说明

  • 电平触发中断
    多个设备的中断信号可以 "线或" 到同一个插座。例如:

    • 打印机和扫描仪同时连接到插座 3 的信号线
    • 任一设备触发中断,APLIC 都会收到插座 3 的中断
  • 固定电平插座
    插座可以被硬连线为高或低电平:

    • 高电平:永远触发中断(可能用于测试)
    • 低电平:永远不触发中断(可能用于预留)

5. 为什么最大源数是 1023?

  • 技术原因:APLIC 使用 10 位寄存器存储中断 ID(2^10=1024)
  • 有效范围:排除 0 后,实际可用 1-1023(共 1023 个)

总结比喻

APLIC 的中断源系统就像一个邮件分拣中心:

  1. 直接投递模式:邮件按原始编号(1-1023)直接送到对应的邮箱(hart)
  2. 转寄模式:邮件会被重新编号(如转换为 EMS 单号),再通过快递(MSI)发送
  3. 特殊处理:允许将多封邮件合并到同一个邮箱,或设置某些邮箱为常满 / 空

这种设计兼顾了物理设备的兼容性和电子消息的灵活性,适用于不同复杂度的系统。

二、Interrupt domains

1. 中断域的基本概念

APLIC 可以划分成多个 "中断域",每个中断域就像一个独立的 "管理小组":

  • 每个小组负责管理特定权限级别的处理器核心(HART)
  • 例如分为 "机器级小组" 和 "管理级小组"
  • 每个小组有自己的 "控制面板"(内存映射控制区域),但实际都是同一个 APLIC 控制器的不同管理界面

APLIC 就像一家公司,中断域就是不同的部门:

  • 机器级域(M 域):最高管理层(根域),所有中断线首先到达这里
  • 管理级域(S 域):业务部门,处理日常工作(操作系统直接控制)
  • 每个部门:有自己的 "办公系统"(内存映射控制区域),但实际共享同一栋办公楼(同一个 APLIC 控制器)

2. 中断域的层次结构

  • 根域:必须是机器级域,所有中断线首先到达这里
  • 子域:根域可以将部分 "工作任务"(中断源)委派给子域

                例如:根域(CEO)将 "打印机管理" 任务交给 IT 部门(子域)

                未被委派的任务(中断源)对子域来说 "不存在"

  • 编号规则:所有域的中断源编号是统一的(比如源 1 在所有域都指向同一个物理线路)

3. 典型系统架构示例

3.1 一个interrupt domain

只有一个hart并且只支持machine level 的中断域

类似于单核心小公司

  • 只有 1 个员工(hart),只能处理最高层(M 域)的工作
  • 所有中断直接由根域处理,没有其他部门

 machine-level interrupt domain对应hart0的machine模式,可以触发hart0 machine模式的中断。

3.2 两个interrupt domain

下图为SMP系统基本架构,有多个hart,hart支持S mode和M mode。APLIC为supervisor level提供了一个独立的interrupt domain。此interrupt domain允许操作系统直接在S态处理接收到的中断,避免调用M mode来处理中断,提高处理中断的效率。

类似于多核心 SMP 公司

  • 4 个员工(harts),分为两个部门:
    • M 域:处理硬件维护(如电源故障)
    • S 域:处理日常业务(如打印、网络)
  • S 域允许操作系统直接管理,无需每次请示 CEO(M 域)

machine-level interrupt domain对应hart0-3的machine模式,可以触发这些hart的machine模式下中断。

supervisor-level interrupt domain对应hart0-3的supervisor模式,可以触发这些hart的supervisor模式下中断。

3.3 三个interrupt domain

APLIC的root domain始终是machine-level interrupt domain。输入的线中断,首先进入根中断域。每个中断域,会有选择地将部分中断域,进行委托给子中断域。

下图是三个中断域的结构,两个在machine-level,一个在supervisor-level。当结合PMP(物理内存保护)使用时,允许软件在machine-level专门为hart0建立一个独立域。

类似于

  • 新增 1 个 "经理" 员工(M 域专用)
  • 通过 "门禁系统"(PMP 内存保护)将特定任务(中断)隔离给经理,其他员工无法处理

machine-level interrupt domain(Root) 对应Hart0的machine模式,可触发Hart0的machine模式下中断。
machine-level interrupt domain(非Root) 对应Hart1 ~ 4的machine模式,可触发这些Hart的machine模式下中断。
supervisor-level interrupt domain对应Hart1 ~ 4的supervisor模式,可触发这些Hart的supervisor模式下中断。

4. 规则

  • 管理级域的父域必须是包含相同核心的机器级域
  • 同一域内的所有核心必须使用同一种中断传递方式(全部直接连线或全部 MSI 消息)
  • 使用 APLIC 的核心在每个权限级别只能属于一个域
  • 使用 IMSIC 控制器的核心可以属于多个域

APLIC 的中断域就像一家公司的部门架构:

  1. 根域(M 域):CEO 办公室,处理最紧急的任务
  2. 子域(S 域):各业务部门,处理日常工作
  3. 任务编号:全公司统一的分机号,无论哪个部门都指向同一台设备
  4. 委派机制:CEO 可以将任务分配给部门,未分配的任务对部门不存在
  5. 通信方式:同一部门必须使用相同沟通渠道(邮件 / 电话)

这种设计让公司(系统)能够高效管理不同优先级的任务,同时保证安全性和灵活性。

三、Hart index numbers

1. 索引编号的本质:部门内的员工编号

在 APLIC 的中断域中,每个 Hart 的索引编号就像公司部门内的员工编号:

  • 范围:0 到 16383(共 16384 个编号)
  • 独立性:与 RISC-V 架构分配的全局 Hart ID 无关
  • 灵活性:不同部门(中断域)可以给同一批员工(Hart)分配不同的编号

示例
同一个 Hart(员工)在部门 A 的编号是 5,在部门 B 可能变成 10。

2. 索引编号的作用

  • 域内控制:用于中断域内的优先级设置、中断路由等
  • 隔离性:不同域的编号系统相互独立,避免冲突

3. MSI 转发时的特殊规则

如果 APLIC 支持通过 MSI(电子消息)转发中断:

  • 所有机器级域必须共享相同的索引→Hart 映射
  • 这就像多个部门合作时,必须使用统一的员工编号系统

示例
当部门 A(机器级域)和部门 B(另一个机器级域)都需要通过 MSI 发送消息时,它们的员工编号必须一致。

4. 为什么需要不同的索引?

  • 域的独立性:每个域可以独立管理自己的中断路由策略
  • 简化配置:避免与全局 Hart ID 的复杂映射

5. 实际应用场景

  • 单域系统:索引与 Hart ID 可能相同
  • 多域系统
    • 部门 A(管理级域)使用简单编号(0-3)
    • 部门 B(机器级域)使用复杂编号(100-103)
  • 跨域 MSI:必须统一编号,否则消息无法正确路由

总结比喻

Hart 索引编号就像:

  • 部门内的工号:不同部门可以有不同的编号方式
  • 跨部门协作时的工牌:必须使用统一编号才能互相识别

这种设计让中断域可以灵活管理自己的资源,同时保证跨域通信的兼容性。

四、Overview of interrupt control for a single domain

1. 中断域的内存映射控制接口

由高级平台级中断控制器(APLIC)实现的每个中断域都有其独立的物理控制接口

  • 权限管理:通过  PMP 内存保护 和  基于页的地址转换 控制访问
  • 独立性:每个中断域的控制接口都具有相同的结构
  • 对于软件而言,每个中断域看起来都像是根域,无法看到其所在层次结构中位于它之上的那些中断域。

2. 中断源的三个核心组件

每个中断源在域内有三个管理设置:

a. 源配置

  • 决定设备是否激活(启用 / 禁用)
  • 判断输入信号类型(电平触发:持续按压;边沿触发:按一下)
  • 未激活时:可以将控制权委派给子部门(子域)

b. 中断待处理位和中断使能位

  • 未激活的中断源:这两位均为只读的零值
  • 激活的中断源:
    • 待处理位:记录未处理的中断
    • 使能位:决定当前是否应传递来自该中断源的中断,还是让其中断保持待处理状态

c. 目标选择

  • 直接传递模式:指定中断发送给哪个Hart 
  • MSI 转发模式:为中断分配新的优先级或 ID

APLIC 的多域实现实际上共享源状态,因为每个源最终只在一个域中激活。未被委派的域中的源状态显示为只读零,节省了硬件资源。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词