IRQ 、PIN、GSI、Vector

我是经常看到unsigned int gsi = hvm_isa_irq_to_gsi(isa_irq)这个函数,不知其为何物,搜了一下,看到gsi原来是全局中断号,遂把这篇文章转过来~以作备份,看硬件不多的人伤不起啊~还是看看x86架构

这几个概念经常把人搅晕掉,下面的内容经常要用到它们,还是先说清楚为妙。

IRQPIC时代的产物,由于ISA设备通常是连接到固定的PIC管脚,所以说一个设备的IRQ实际是指它连接的PIC管脚号。IRQ暗示着中断优先级,例如IRQ0IRQ3有着更高的优先级。当前进到APIC时代后,或许是出于习惯,人们仍习惯用IRQ表示一个设备的中断号,但对于16以下的IRQ,它们可能不再与IOAPIC的管脚对应,例如PIT此时接的是2号管脚。

Pin是管脚号,通常它表示IOAPIC的管脚(前面说了,PIC时代我们用IRQ)。Pin的最大值受IOAPIC管脚数限制,目前取值范围是[0,23]

GSIACPI引入的概念,全称是Global System Interrupt。它为系统中每个中断源指定一个唯一的中断号.

3IOAPICIOAPIC0~2IOAPIC024个管脚,其GSI base0,每个管脚的GSI=GSI base + pin,故IOAPIC0GSI范围为[0~23]IOAPIC116个管脚,GSI base24GSI范围为[24,39],依次类推。ACPI要求ISA16IRQ应该被identify mapGSI[0,15]

IRQGSIAPIC系统中常常被混用,实际上对15以上的IRQ,它和GSI相等。我们在谈到IRQ时,一定要注意它所处的语境。

VectorCPU的概念,是中断在IDT表中的索引。每个IRQ(或GSI)都对应一个Vector。在PIC模式下,IRQ对应的vector=start vector + IRQ;在APIC模式下,IRQ/GSIvector由操作系统分配。

转载于:https://www.cnblogs.com/yanyansha/archive/2011/09/02/2163450.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值