X86(Local APIC+I/O APIC)与RISC-V(IMSIC+APLIC)对比

本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。

将X86(Local APIC+I/O APIC)与RISC-V(IMSIC+APLIC)进行对比。

1 组件对比

X86:

  • Local APIC(Local Advanced Programmable Interrupt Controller,本地高级中断控制器),位于CPU中,每个core都有一个自己的LAPIC。
  • IOAPIC(I/O Advanced Programmable Interrupt Controller,I/O 高级中断控制器),通常位于外部设备芯片上,例如南桥上。像PIC 一样,连接各个产生中断的设备。

RISC-V:

  • IMSIC(Incoming Message-Signaled Interrupt Controller),位于CPU中,每个Hart都有一个自己的IMSIC。
  • APLIC(Advanced Platform-Level Interrupt Controller),APLIC的任务是收集和处理中断,然后将这些中断以线连接或者MSI的方式传递给hart。

IMSIC的作用,相当于X86中Local APIC;

APLIC的作用,相当于X86中IOAPIC。

为处理外部中断,X86中Local APIC+I/O APIC的组合,与RISC-V中IMSIC+APLIC,非常相似。

2 处理对比

对外部中断的处理,可以从下图,进一步对比:

  • 外部中断进入APLIC(或IOAPIC),转换为MSI消息;
  • 判断IOMMU是否启用
    • 若启用,则对MSI进行转换,结果依然是MSI消息,再传递到IMSIC(Local APIC);
    • 若禁用,则直接传递到IMSIC(Local APIC)。
  • MSI消息进入Hart(Core)中的IMSIC(Local APIC)后,进行处理,会将中断对应的pending置位等,以便软件检测到中断,进而进入中断服务程序。

3 X86中断架构参考文档

相关推荐
禾仔仔5 天前
RISC-V特权模式及切换
linux·risc-v
CCF ODC5 天前
【2025CCF中国开源大会】RISC-V 开源生态的挑战与机遇分论坛重磅来袭!共探开源芯片未来
开源·risc-v
禾仔仔5 天前
RISC-V PMA、PMP机制深入分析
risc-v·pmp·pma
LitchiCheng8 天前
RISC-V 开发板 MUSE Pi Pro 搭建 Spacengine AI模型部署环境
人工智能·risc-v
被制作时长两年半的个人练习生8 天前
qemu安装risc-V 64
risc-v
LitchiCheng10 天前
RISC-V 开发板 MUSE Pi Pro OpenCV结合Gstreamer实时显示CSI摄像头
人工智能·opencv·risc-v
LitchiCheng10 天前
RISC-V 开发板 MUSE Pi Pro cpufp测试算力
risc-v
LitchiCheng12 天前
RISC-V 开发板 MUSE Pi Pro USB 测试(3.0 U盘,2.0 UVC摄像头)
linux·运维·risc-v
MounRiver_Studio13 天前
RISC-V IDE MRS2 开发笔记一:volatile关键字的使用
ide·笔记·risc-v
2301_8018217113 天前
实验-设计一个应用系统(计算机组成原理)
cpu·risc-v·计算机组成原理·logisim