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中断架构参考文档

相关推荐
慧都小项21 小时前
Parasoft助力RISC-V芯片量产:提供高可靠软件测试方案
软件测试·risc-v·芯片·parasoft
京雨21 小时前
关于RISC-V 中断处理的分析
单片机·嵌入式硬件·risc-v
京雨2 天前
RISC-V 中的 Wait For Interrupt 指令 (wfi) 详解
risc-v
国科安芯15 天前
前沿探索:RISC-V 架构 MCU 在航天级辐射环境下的可靠性测试
网络·单片机·嵌入式硬件·fpga开发·硬件架构·risc-v
longxiangam16 天前
墨水屏程序
单片机·嵌入式硬件·rust·risc-v
咕咚.萌西17 天前
RISC-V体系架构
嵌入式硬件·架构·risc-v
咕咚.萌西17 天前
RISC-V开发环境搭建
linux·硬件架构·risc-v
OpenAnolis小助手22 天前
睿思芯科正式加入龙蜥社区,携手共建 RISC-V 服务器生态新标杆
操作系统·龙蜥社区·risc-v·龙蜥生态
芯有所享1 个月前
【ARM vs RISC-V:芯片架构双雄争霸,谁将主宰AI时代?】
arm开发·人工智能·risc-v
ChipCamp2 个月前
ChipCamp探索系列 -- 1. Soft-Core RISC-V on FPGA
fpga开发·verilog·risc-v