首页 > 其他分享 >PCIe扫盲——中断机制介绍(INTx)

PCIe扫盲——中断机制介绍(INTx)

时间:2023-04-11 15:44:23浏览次数:45  
标签:扫盲 中断 PCIe PCI MSI Interrupt INTx

一个简单的PCI总线INTx中断实现流程,如下图所示。

1.     首先,PCI设备通过INTx边带信号产生中断请求,经过中断控制器(Interrupt Controller,PIC)后,转换为INTR信号,并直接发送至CPU;

2.     CPU收到INTR信号置位后,意识到了中断请求的发生,但是此时并不知道是什么中断请求。于是通过一个特殊的指令来查询中断请求信息,该过程一般被称为中断应答(Interrupt Acknowledge);

3.     该特殊指令被发送至PIC后,PIC会返回一个8bits的中断向量(Interrupt Vector)值给CPU。该中断向量值与其发送的INTR请求是对应的;

4.     CPU收到来自PIC的中断向量值后,会去其Memory中的中断向量表(Interrupt Table)中查找对应的中断服务程序(Interrupt Service Routines,ISR)在Memory的位置;

5.     然后CPU读取ISR程序,进而处理该中断。

image.png

上面的例子主要是基于早期的单核CPU设计的,并没有考虑到目前多核CPU的情况。因此,在后续的PCI Spec中,将PIC替换为IO APIC(Advanced Programmed Interrupt Controller)。如下图所示:

image.png

实际上,在PCIe总线中,传统的中断机制(INTx)已经很少被使用,很多应用甚至直接将该功能禁止了。无论是在PCI总线(V2.3及以后的版本),还是PCIe总线中,都可以通过配置空间中的配置命令寄存器(Configuration Command Register来禁止INTx中断机制),如下图所示。不过,需要特别注意的是,虽然该bit的名称为中断禁止(Interrupt Disable),但是其只会影响INTx,对MSI/MSI-X不会造成影响。因为MSI/MSI-X的使能(或禁止)是通过配置空间中的MSI/MSI-X Capability Command Register来实现的,并且一旦使能了MSI/MSI-X,PCI总线/PCIe总线便会自动地禁止INTx。

image.png

并且可以通过配置状态寄存器的中断状态(Interrupt Status)bit来确定当前的中断状态,如下图所示:

image.png

INTx相关的寄存器在配置空间的位置如下图所示,Interrupt Pin和Interrupt Line分别定义了中断边带信号引脚号(INTA#~INTD#)和中断向量号(IRQ0~IRQ255)。

image.png

然而,PCIe总线继承了PCI总线的INTx中断机制,但是在实际的PCIe设备之间的中断信息传输中使用的并非边带信号INTx,而是基于消息(Message)的。其中Assert_INTx消息表示INTx信号的下降沿。Dessert_INTx消息表示INTx信号的上升沿。当发送这两种消息时,PCIe设备还会将配置空间的相关中断状态bit的值更新。对于PCIe-PCI(X)桥设备来说,会将接收到的来自PCI/PCI-X总线的INTx信号转换为消息,在往上级发送。一个简单的例子如下图所示:

image.png

INTx消息的格式为:

image.png

桥设备中的INTx消息的类型与设备号的映射关系如下图所示:

image.png

对应的,一个简单的例子如下:

image.png

当多个设备使用同一个中断信号线时,只有先置位的设备会被中断控制器响应。但是该中断信号线,并不会因为其中一个设备的中断请求得到响应便被清除,而是会等到所有的发送请求的设备的中断请求都得到了响应之后。如下图所示:

image.png

标签:扫盲,中断,PCIe,PCI,MSI,Interrupt,INTx
From: https://www.cnblogs.com/lianglianglu/p/17306463.html

相关文章

  • PCIE基本概念
    引用:https://blog.csdn.net/weixin_44810385/article/details/1270077471.PCIe总线基本概念PCIe采用全双工的传输设计,即允许在同一时刻,同时进行发送和接收数据。如下图所示,设备A和设备B之间通过双向的Link相连接,每个Link支持1到32个通道(Lane)。由于是串行总线,因此所有的数据(包......
  • PCIE&IIC 基本概念&图解串行通信协议
       rootcomplex是一切的根,向下生长的是pcie链路      PCI-Express是继ISA和PCI总线之后的第三代I/O总线,即3GIO。由Intel在2001年的IDF上提出,由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。它的主要优势就是数据传输速率高,另外还有抗干扰能力......
  • #yyds干货盘点 前端小知识点扫盲笔记记录5
    前言我是歌谣放弃很容易但是坚持一定很酷微信公众号关注前端小歌谣带你进入前端巅峰交流群今天继续对前端知识的小结事件委托<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="UTF-8"/> <metahttp-equiv="X-UA-Compatible"content="IE=edge"/&g......
  • #yyds干货盘点 前端小知识点扫盲笔记记录3
    前言我是歌谣放弃很容易但是坚持一定很酷微信公众号关注前端小歌谣带你进入前端巅峰交流群今天继续对前端知识的小结localStorage和sessionStoragecookie本身用于浏览器和server通讯。被“借用”到本地存储来的。可用document.cookie='...'来修改。其缺点:存储大小......
  • #yyds干货盘点 前端小知识点扫盲笔记记录
    前言大家好我是歌谣微信公众号关注前端小歌谣带你进入前端巅峰人才交流群MVC和MVVM//在MVVM框架下视图和模型是不能直接通信的,只能通过ViewModel进行交互,它能够监听到数据的变化,//然后通知视图进行自动更新,而当用户操作视图时,VM也能监听到视图的变化,然后通知数据做相应改动,//......
  • MIPI/LVDS/PCIE/HDMI 设计规范
          ......
  • vue前端纯小白向快速扫盲贴集合
    看的一些博客,对于刚入门被前端各种东西搞得头昏的小白扫盲还是很有帮助的,可以快速理解前端总说的一些东西到底是干什么的。1创建vue项目所需外部环境nodenpm vue/cli脚手架  官网下载node.js直接下一步下一步即可,管理员打开cmd执行node-v正确返回版本  如何升级......
  • #yyds干货盘点 前端小知识点扫盲笔记记录
    前言大家好我是歌谣微信公众号关注前端小歌谣带你进入前端巅峰人才交流群MVC和MVVM//在MVVM框架下视图和模型是不能直接通信的,只能通过ViewModel进行交互,它能够监听到数......
  • RK3399+PCIe+FPGA 在高速AD无线通信中的应用
    一、需求要实现高速AD/DA的数据采集,并发送到高性能arm核进行数据处理;方案RK3399+pcie+FPGA+AD/DA。二、器件介绍一、RK3399RK3399是一款低功耗、高性能处理器,用于计算、......
  • PCIE
    前言PCIe和PCI最大的改变是由并行改为串行,通过使用差分信号传输,相同内容通过一正一反镜像传输,干扰可以很快被发现和纠正,从而可以将传输频率大幅度提升。PCI原本是半双工......