穿越之我在西安搞PCIE——PCIE中断(未完)

1.PCIe中断概述

        PCIe内的中断主要分为两类,一种是传统中断INTx,另一种则是消息中断MSI/MSI-X。本章主要就这两类中断做以阐述。

2.INTx

        INTx是一般被叫做PCI的传统中断,每个设备最多支持四个中断信号,INTA、INTB、INTC和INTD. 说直白一点就是有四根线,每一根线分别对应了INTA、INTB、INTC和INTD。

        ECAM空间内的Interrupt Pin寄存器就会记录使用的中断的遗留消息,Interrupt Pin寄存器有效值包括01h、02h、03h和04h,分别对应INTA、INTB、INTC和INTD的遗留中断消息。

        是否禁用 INTx中断可以通过ECAM空间内的Command Register内的Interrupt Disable字段控制。

3.MSI

        与INTx中断相比,MSI(Message Signaled Interrupt)的性能和灵活性更高。举个例子,当基于引脚的INTx中断被多个设备共享时,如果有中断产生,需要一一调用对应的中断处理函数,从而损失性能,而MSI则不存在上述的共享问题;再举个例子,多function的PCI设备,每个function最多有一个中断引脚,当事件发生时,驱动需要去查询设备才能清楚哪一个事件发生了,这会导致中断的处理速度降低,而一个设备可以支持32个MSI中断,每个中断可以对应特定的功能。

        PCIe设备中就包含了MSI Capability结构,它共有四种组成方式,分别是32位/64位的Message结构,32位/64位带中断Mask的结构,MSI可以使用Mask的机制使能或者禁用某个中断源。

        MSI Capability寄存器的结构如下图所示:

Figure 1 :MSI Capability Structure for 32-bit Message Address
Message ControlNext Capability PointerCapability ID
Message Address
Extended Message Data (if implemented)Message Data
Figure 2 :MSI Capability Structure for 64-bit Message Address
Message ControlNext Capability PointerCapability ID
Message Address
Message Upper Address
Extended Message Data (if implemented)Message Data
Figure 3 :MSI Capability Structure for 32-bit Message Address and PVM
Message ControlNext Capability PointerCapability ID
Message Address
Extended Message Data (if implemented)Message Data
Mask Bits
Pending Bits
Figure 4:MSI Capability Structure for 64-bit Message Address and PVM
Message ControlNext Capability PointerCapability ID
Message Address
Message Upper Address
Extended Message Data (if implemented)Message Data
Mask Bits
Pending Bits


        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值