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

相关推荐
Eloudy20 小时前
risc-v 实验简介 uboot + gem5-riscv
risc-v
Eloudy21 小时前
gem5 运行 risc-v 64bit 的 U-Boot
risc-v
木由里予2 天前
RISC-V 32 位基础指令集(RV32I)完整参考手册
risc-v
一枝小雨4 天前
RISC-V架构sp寄存器 & RISC-V架构下FreeRTOS任务上下文保存与恢复
单片机·架构·嵌入式·risc-v·rtos·内核原理
一枝小雨4 天前
RISC-V架构的中断与异常处理机制学习笔记
单片机·架构·嵌入式·risc-v·内核原理·中断与异常
一枝小雨4 天前
什么是标准C函数:以RISC-V架构下的C函数为例
c语言·risc-v·内核原理
咕咚.萌西5 天前
RISCV AS汇编器
risc-v
嵌入式小企鹅5 天前
UiPath推出AI编程“总指挥台”,SiFive发布RISC-V第三代猛兽
人工智能·学习·google·程序员·ai编程·risc-v·开源工具
阿祖_in_coding8 天前
RISC-V ACT测试
risc-v
yusur8 天前
开芯院院长唐丹一行来访中科驭数 共探RISC-V与DPU算力协同创新之路
risc-v