您的位置 首页 制造

一个简略的PCI总线INTx中止完成流程

一个简单的PCI总线INTx中断实现流程,如下图所示。1. 首先,PCI设备通过INTx边带信号产生中断请求,经过中断控制器(Interrupt Controller,PIC)后,转换为INT

  一个简略的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程序,从而处理该中止。

  上面的比如主要是根据前期的单核CPU规划的,并没有考虑到现在多核CPU的状况。因而,在后续的PCI Spec中,将PIC替换为IO APIC(Advanced Programmed Interrupt Controller)。如下图所示:

  实践上,在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。

  而且能够经过装备状况寄存器的中止状况(Interrupt Status)bit来确认当时的中止状况,如下图所示:

  INTx相关的寄存器在装备空间的方位如下图所示,Interrupt Pin和Interrupt Line别离界说了中止边带信号引脚号(INTA#~INTD#)和中止向量号(IRQ0~IRQ255)。

  可是,PCIe总线承继了PCI总线的INTx中止机制,可是在实践的PCIe设备之间的中止信息传输中运用的并非边带信号INTx,而是根据音讯(Message)的。其间Assert_INTx音讯表明INTx信号的下降沿。Dessert_INTx音讯表明INTx信号的上升沿。当发送这两种音讯时,PCIe设备还会将装备空间的相关中止状况bit的值更新。关于PCIe-PCI(X)桥设备来说,会将接收到的来自PCI/PCI-X总线的INTx信号转换为音讯,在往上级发送。一个简略的比如如下图所示:

  INTx音讯的格局为:

  桥设备中的INTx音讯的类型与设备号的映射联系如下图所示:

  对应的,一个简略的比如如下:

  当多个设备运用同一个中止信号线时,只要先置位的设备会被中止控制器呼应。可是该中止信号线,并不会由于其间一个设备的中止恳求得到呼应便被铲除,而是会比及一切的发送恳求的设备的中止恳求都得到了呼应之后。如下图所示:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/zhizao/136311.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部