6.1MSI/MSI-XCapability结构 node v6.2.0 x64.msi

PCIe设备可以使用MSI或者MSI-X报文向处理器提交中断请求,但是对于某个具体的PCIe设备,可能仅支持一种报文。在PCIe设备中含有两个Capability结构,一个是MSICapability结构,另一个是MSI-XCapability结构。通常情况下一个PCIe设备仅包含一种结构,或者为MSICapability结构,或者为MSI-XCapability结构。

6.1.1MSICapability结构

MSICapability结构共有四种组成方式,分别是32和64位的Message结构,32位和64位带中断Masking的结构。MSI报文可以使用32位地址或者64位地址,而且可以使用Masking机制使能或者禁止某个中断源。MSICapability寄存器的结构如图6‑1所示。



表6‑1MSI Cabalibities结构的MessageControl字段

Bits

定义

描述

15:9

Reserved

保留位。系统软件读取该字段时将返回全零,对此字段写无意义。

8

Per-vector Masking Capable

该位为1时,表示支持带中断Masking的结构;如果为0,表示不支持带中断Masking的结构。该位对系统软件只读,该位在PCIe设备初始化时设置。

7

64 bit Address Capable

该位为1时,表示支持64位地址结构;如果为0,表示只能支持带32位地址结构。该位对系统软件只读,该位在PCIe设备初始化时设置。

6:4

Multiple Message Enable

该字段可读写,表示软件分配给当前PCIe设备的中断向量数目。系统软件根据MultipleMessage Capable字段的大小确定该字段的值。在系统的中断向量资源并不紧张时,MultipleMessage Capable字段和该字段的值相等;而资源紧张时,该字段的值可能小于MultipleMessage Capable字段的值。

3:1

Multiple Message Capable

该字段对系统软件只读,表示当前PCIe设备可以使用几个中断向量号,在不同的PCIe设备中该字段的值并不不同。当该字段为0b000时,表示PCIe设备可以使用1个中断向量;为0b001、0b010、0b011、0b100和0b101时,表示使用4、8、16和32个中断向量;而0b110和0b111为保留位。
该字段与Multiple MessageEnable字段的含义不同,该字段表示,当前PCIe设备支持的中断向量个数,而MultipleMessage Enable字段是系统软件分配给PCIe设备实际使用的中断向量个数。

0

MSI Enable

该位可读写,是MSI中断机制的使能位。该位为1而且MSI-XEnable位为0时,当前PCIe设备可以使用MSI中断机制,此时Legacy中断机制被禁止。一个PCIe设备的MSIEnble和MSI-XEnable位都被禁止时,将使用INTx中断消息报文发出/结束中断请求[1]。





6.1.2MSI-XCapability结构

MSI-XCapability中断机制与MSICapability的中断机制类似。PCIe总线引出MSI-X机制的主要目的是为了扩展PCIe设备使用中断向量的个数,同时解决MSI中断机制要求使用中断向量号连续所带来的问题。

MSI中断机制最多只能使用32个中断向量,而MSI-X可以使用更多的中断向量。目前Intel的许多PCIe设备支持MSI-X中断机制。与MSI中断机制相比,MSI-X机制更为合理。首先MSI-X可以支持更多的中断请求,但是这并不是引入MSI-X中断机制最重要的原因。因为对于多数PCIe设备,32种中断请求已经足够了。而引入MSI-X中断机制的主要原因是,使用该机制不需要中断控制器分配给该设备的中断向量号连续。

如果一个PCIe设备需要使用8个中断请求时,如果使用MSI机制时,MessageData的[2:0]字段可以为0b000~0b111,因此可以发送8种中断请求,但是这8种中断请求的MessageData字段必须连续。在许多中断控制器中,MessageData字段连续也意味着中断控制器需要为这个PCIe设备分配8个连续的中断向量号。

有时在一个中断控制器中,虽然具有8个以上的中断向量号,但是很难保证这些中断向量号是连续的。因此中断控制器将无法为这些PCIe设备分配足够的中断请求,此时该设备的“MultipleMessage Enable”字段将小于“MultipleMessage Capable”。

而使用MSI-X机制可以合理解决该问题。在MSI-XCapability结构中,每一个中断请求都使用独立的MessageAddress字段和MessageData字段,从而中断控制器可以更加合理地为该设备分配中断资源。

与MSI Capability寄存器相比,MSI-XCapability寄存器使用一个数组存放MessageAddress字段和MessageData字段,而不是将这两个字段放入Capability寄存器中,本篇将这个数组称为MSI-XTable。从而当PCIe设备使用MSI-X机制时,每一个中断请求可以使用独立的MessageAddress字段和MessageData字段。

除此之外MSI-X中断机制还使用了独立的PendingTable表,该表用来存放与每一个中断向量对应的Pending位。这个Pending位的定义与MSICapability寄存器的Pending位类似。MSI-XTable和PendingTable存放在PCIe设备的BAR空间中。MSI-X机制必须支持这个PendingTable,而MSI机制的PendingBits字段是可选的。

1MSI-X Capability结构

MSI-XCapability结构比MSICapability结构略微复杂一些。在该结构中,使用MSI-XTable存放该设备使用的所有MessageAddress和MessageData字段,这个表格存放在该设备的BAR空间中,从而PCIe设备可以使用MSI-X机制时,中断向量号可以并不连续,也可以申请更多的中断向量号。MSI-XCapability结构的组成方式如图6‑2所示。



上图中各字段的含义如下所示。

表6‑2MSI-X Capability结构的MessageControl字段

Bits

定义

描述

15

MSI-X Enable

该位可读写,是MSI-X中断机制的使能位,复位值为0,表示不使能MSI-X中断机制。该位为1且MSIEnable位为0时,当前PCIe设备使用MSI-X中断机制,此时INTx和MSI中断机制被禁止。当PCIe设备的MSIEnble和MSI-XEnable位为0时,将使用INTx中断消息报文发出/结束中断请求。

14

Function Mask

该位可读写,是中断请求的全局Mask位,复位值为0。如果该位为1,该设备所有的中断请求都将被屏蔽;如果该位为0,则由PerVector Mask位,决定是否屏蔽相应的中断请求。PerVector Mask位在MSI-XTable中定义,详见下文。

10:0

Table Size

MSI-X中断机制使用MSI-XTable存放MessageAddress字段和MessageData字段。该字段用来存放MSI-XTable的大小,该字段对系统软件只读。

2MSI-X Table

MSI-XTable的组成结构如图6‑3所示。


由上图可见,MSI-X Table由多个Entry组成,其中每个Entry与一个中断请求对应。其中每一个Entry中有四个参数,其含义如下所示。

3Pending Table

PendingTable的组成结构如图6‑4所示。



如上图所示,在Pending Table中,一个Entry由64位组成,其中每一位与MSI-XTable中的一个Entry对应,即PendingTable中的每一个Entry与MSI-XTable的64个Entry对应。与MSI机制类似,Pending位需要与PerVector Mask位配置使用。

当Per Vector Mask位为1时,PCIe设备不能立即发送MSI-X中断请求,而是将对应的Pending位置1;当系统软件将Per Vector Mask位清零时,PCIe设备需要提交MSI-X中断请求,同时将Pending位清零。

[1]此时PCI设备配置空间Command寄存器的“InterruptDisable”位为1。

[2] MSI机制提交中断请求的方式类似与边界触发方式,而使用边界触发方式时,处理器可能会丢失某些中断请求,因此在设备驱动程序的开发过程中,可能需要使用这两个字段。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/278334.html

更多阅读

诺顿Android手机安全软件2.0使用评测 诺顿安全特警

诺顿手机安全软件(Norton-Mobile Security)主要针对Android(安卓)手机设计的一款保护手机本身及其信息安全,具有防病毒功能的软件。它不仅具有防护恶意软件的功能,还能够进行设备远程锁定和数据擦除,确保手机丢失后能够及时定位手机所

Cool Edit Pro 2.0详细教程 cooleditpro2.0汉化包

系统介绍一下用Cooledit pro 2.0录制自唱歌曲的一个全过程,希望对喜欢唱歌,想一展歌喉的朋友有所帮助。录制原声?录音是所有后期制作加工的基础,这个环节出问题,是无法靠后期加工来补救的,所以,如果是原始的录音有较大问题,就重新

QQ农场2.0最佳赚点券方法 农场点券怎么赚才快

QQ农场2.0最佳赚点券方法——简介QQ农场升级以后,花样多了很多,神马蜂巢、加工坊、许愿树、直升机订单.....而且还多了一种终极土地--紫金土地。这里讲的是不花钱的玩法,供大家参考QQ农场2.0最佳赚点券方法——方法/步骤QQ农场2.0最佳

速腾1.6和2.0的区别动力篇 速腾1.6动力怎么样

速腾现在一共有三种发动机:1.6,2.0和1.8TSI。1.8TSI的手动挡官方报价是17万多,自动挡是18万多,可以说是价格已经超过了很多B级车的低配车型的价格了,而且在添几万可以买到比速腾高一级别的迈腾了,因此建议真正喜欢开快车,喜欢运动有想有个

声明:《6.1MSI/MSI-XCapability结构 node v6.2.0 x64.msi》为网友北巷南猫分享!如侵犯到您的合法权益请联系我们删除