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

相关推荐
矜辰所致3 天前
CH585 高速 USB模拟 CDC串口应用示例
沁恒微·risc-v·usb·cdc串口·usb 模拟串口
加油20198 天前
freertos系统中如何生成随机数以及保证随机性?
freertos·risc-v·随机数·lcg·rdcycle·周期计数器
飞睿科技10 天前
乐鑫推出的第三颗RISC-V物联网芯片ESP32-H2,融合蓝牙与Thread技术!
物联网·risc-v
云雾J视界11 天前
RISC-V开源处理器实战:从Verilog RTL设计到FPGA原型验证
fpga开发·开源·verilog·risc-v·rtl·数字系统
做一个快乐的小傻瓜12 天前
易灵思FPGA的RISC-V核操作函数
fpga·risc-v·易灵思
嵌入式Linux,21 天前
RISC-V 只会越来越好(2)
risc-v
国科安芯24 天前
抗辐照MCU芯片在低轨商业卫星原子钟中的适配与优化
单片机·嵌入式硬件·fpga开发·架构·risc-v
云澈ovo1 个月前
RISC-V 架构适配:开源 AI 工具链的跨平台编译优化全流程(附实战指南)
架构·开源·risc-v
Blossom.1181 个月前
用一颗MCU跑通7B大模型:RISC-V+SRAM极致量化实战
人工智能·python·单片机·嵌入式硬件·opencv·机器学习·risc-v