INTx中断虽然在PCIe总线内部是基于消息传递的,但最终还是需要通过中断线连接到中断控制器的,这也限制了其中断数量的扩展。MSI中断则与此不同,此时PCIe与中断控制器之间不再需要硬件中断线,而是当中断发生时,PCIe设备只需要向特定地址写入指定的值后,中断控制器就能自动产生一个中断,即它是完全基于消息形式的。显然,若...
也可以基于PCI Driver提供的现有接口 pci_msix_vec_count (drivers/pci/msi.c),来获取给定PCIE设备支持的 中断向量数目(vector number)。 /*** pci_msix_vec_count - return the number of device's MSI-X table entries* @dev: pointer to the pci_dev data structure of MSI-X device function* This ...
PCIe中断是指当PCIe设备需要向主机发送信号时,通过中断方式将信息传送给主机。本文将介绍PCIe中断的方法、系统与流程。 一、PCIe中断方法 PCIe中断有两种方法:MSI(Message-Signaled Interrupts)和MSI-X(Message Signaled Interrupts eXtended)。 1.MSI方法 MSI是一种简化中断传输机制的技术。它将中断传递方式从传统的基于...
PCIE协议规定的MSI的大致工作流程是: 1. EP 申请2^n个MSI向量 2. RC分配2^m个向量给某个EP (m<=n) 3. 然后,EP可以触发任何一个RC分配给他的中断向量 详细信息请参与PCIE协议。 K1_STK实现中的“PCIE_int_cfg.number_tx_MSI = PCIE_16_MSI;” 表示的是EP申请16个MSI中断向量; "KeyStone_PCIE_RC_...
其中,PCIe中断处理和响应的具体流程如下: 1. 操作系统首先会在响应中断之前,停止所有其他操作,确保能够及时响应中断; 2. 如果是MSI中断,则操作系统会读取中断请求对应的中断控制器的寄存器,获得中断请求所对应的中断向量;如果是MSI-X中断,则会读取对应的中断事件表,确定触发中断的设备和中断向量; 3. 操作系统根据中...
中断处理过程 中断请求:当外部设备或其他内部事件需要CPU关注时,该设备或事件会发送一个中断请求信号给中断控制器(如PIC,Programmable Interrupt Controller)。在PCIe的上下文中,设备可能会通过INTx边带信号或其他机制(如MSI,Message Signaled Interrupt)来产生中断请求。中断响应:中断控制器接收到中断请求后,会向...
PCIe设备在提交MSI中断请求时,都是向MSI/MSI-X Capability结构中的Meaasge Address的地址写Message Data数据,从而组成一个存储器写TLP,向处理器提交存储器写请求。 翻译一下就是说: 由于存储器域和PCIe域地址的相互映射,向MessageAddress地址写数据,也就是向对应的存储器域地址写数据,写入的数据为Message Data,从而...
1> 主控制器的工作是扫描到该设备后顺藤摸瓜,沿着Capabilities List找到MSI中断节点. 2> 主控制器给设备上的Address Register和data register俩寄存器赋值(以MPC8548E为例,该值是中断控制器的MSI中断寄存器定义决定); 设备 MSI中断, 本质上是一个内存写事务,该事务的payload部分都由MSI Capabilities 寄存器的值组成...
如下图是x86处理器中Message Address和Message Data字段的格式,里面包含了CPU的ID号Destination ID以及中断向量号Vector; MSI/MSI-X中断TLP报文到达RC时,发现TLP的目的地址在FSB Interrupts存储器空间中,则将PCIe总线的存储器写请求转换为Interrupt Message总线事务,并在FSB总线上广播,FSB总线上的CPU根据消息中CPU的ID号...
在PCI总线中,所有需要提交中断请求的设备,必须能够通过INTx引脚提交中断请求,而MSI机制是一个可选机制。而在PCIe总线中,PCIe设备必须支持MSI或者MSI-X中断请求机制,而可以不支持INTx中断消息。 在PCIe总线中,MSI和MSI-X中断机制使用存储器写请求TLP向处理器提交中断请求,下文为简便起见将传递MSI/MSI-X中断消息的存储...