32 配置引脚中断_PCIe的中断机制

PCIe完全继承了PCI中断特性,包括INTx和MSI/MSIx。INTx在PCIe中通过Message传递,而非边带信号。MSI/MSIx是PCIe的主要中断请求机制,避免了INTx的局限性。中断处理涉及Interrupt Disable bit、Interrupt Status bit及中断控制器的IRQ映射。PCIe设备使用基于Memory Write的MSI/MSI-X提交中断请求,通过Message Address和Data字段传递信息。
摘要由CSDN通过智能技术生成

de961ecf4d3776ebc955c39001cbfc1e.png

出于向下兼容的需要,PCIe完全继承了PCI的所有的中断特性(包括INTx,MSI/MSIx)。但是与PCI不同的是,PCIe使用串行总线尽量减少pin的使用,所以对于INTX类型的中断,它没有使用sideband pin的方式而是使用Message传递中断。另外对于PCI, MSI/MSIX是可选的但是PCIe设备必须支持MSI/MSIx的中断请求机制,可以不支持INTx中断消息。

aa0490c462bf0d188a7f09b06cf66195.png

INTx 中断:

在详细介绍PCIe的中断机制之前,我们先来回顾一下PCI时代传统的中断处理过程。下图是一个典型使用PCI设备的单处理器的系统。在这个系统中设备通过INTA#产生中断,INTA#链接到南桥PIC的IRQ上,PIC再通过INTR连接到CPU上。在这样的一个系统中,中断的传递流程如下所示:

  1. 设备通过连接到中断控制器PIC的INTA#请求中断,通常PIC有15个IRQ和1个INTR,它收到中断请求以后,它会拉INTR通知CPU有中断在等待处理中。
  2. CPU检测到INTR的信号以后,它会需要知道对应的中断向量,所以它会发一个中断响应命令给PIC。
  3. PIC 返回一个当前等待中最高优先级中断请求的8位的中断向量,该向量是由之前的系统软件设置的。
  4. CPU 按照中断向量找到对应的中断处理程序。
  5. 执行该中断处理程序并告诉设备释放INTx#信号线,程序返回到之前被中断的任务继续执行。

05fc5edcd0b0925a894ae720be6dd2c9.png

PCI spec 2.3在Command Register中引入了一个新的Interrupt Disable bit用来控制中断的enable和disable,该bit只会控制INTx类型的中断,不会影响MSIx。另外在Configuration Status Register加了一个Interrupt Status bit用来反应中断的状。

2de562bd18c22437016d7b428a66f627.png

18e989e3c754d4fad4ad9852f7b87b13.png

在PCI总线中,设备的INTx pin最终要连接到中断控制器的IRQ pin。通常在一个系统中会有多个设备,而且我们还可以通过桥扩展多个设备。这种情况下设备的INTx和中断控制器的连接方式要妥善的处理已达到负载均衡的目的。如下图的一个系统中,共有3个PCI插槽这些PCI插槽与中断控制器的IRQ_PINx引脚 (分别为IRQW#、IRQX#、IRQY#和IRQZ#)可以按照下图所示的拓扑结构进行连接。

90ffa14e801690bd637a54224584d841.png

PCI插槽 A、B、C 的 INTA#、INTB# 和 INTC# 信号将分散连接到中断控制器的 IRQW#、IRQX#和IRQY#信号,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值