第6章 MSI和MSI-X中断机制

在PCI总线中,所有需要提交中断请求的设备,必须能够通过INTx引脚提交中断请求,而MSI机制是一个可选机制。而在PCIe总线中,PCIe设备必须支持MSI或者MSI-X中断请求机制,而可以不支持INTx中断消息。

在PCIe总线中,MSI和MSI-X中断机制使用存储器写请求TLP向处理器提交中断请求,下文为简便起见将传递MSI/MSI-X中断消息的存储器写报文简称为MSI/MSI-X报文。不同的处理器使用了不同的机制处理这些MSI/MSI-X中断请求,如PowerPC处理器使用MPIC中断控制器处理MSI/MSI-X中断请求,本章将在第6.2节中介绍这种处理情况;而x86处理器使用FSB Interrupt Message方式处理MSI/MSI-X中断请求。

不同的处理器对PCIe设备发出的MSI报文的解释并不相同。但是PCIe设备在提交MSI中断请求时,都是向MSI/MSI-X Capability结构中的Message Address的地址写Message Data数据,从而组成一个存储器写TLP,向处理器提交中断请求。

有些PCIe设备还可以支持Legacy中断方式[1]。但是PCIe总线并不鼓励其设备使用Legacy中断方式,在绝大多数情况下,PCIe设备使用MSI或者MSI/X方式进行中断请求。

PCIe总线提供Legacy中断方式的主要原因是,在PCIe体系结构中,存在许多PCI设备,而这些设备通过PCIe桥连接到PCIe总线中。这些PCI设备可能并不支持MSI/MSI-X中断机制,因此必须使用INTx信号进行中断请求。

当PCIe桥收到PCI设备的INTx信号后,并不能将其直接转换为MSI/MSI-X中断报文,因为PCI设备使用INTx信号进行中断请求的机制与电平触发方式类似,而MSI/MSI-X中断机制与边沿触发方式类似。这两种中断触发方式不能直接进行转换。因此当PCI设备的INTx信号有效时,PCIe桥将该信号转换为Assert_INTx报文,当这些INTx信号无效时,PCIe桥将该信号转换为Deassert_INTx报文。

与Legacy中断方式相比,PCIe设备使用MSI或者MSI-X中断机制,可以消除INTx这个边带信号,而且可以更加合理地处理PCIe总线的“序”。目前绝大多数PCIe设备使用MSI或者MSI-X中断机制提交中断请求。

MSI和MSI-X机制的基本原理相同,其中MSI中断机制最多只能支持32个中断请求,而且要求中断向量连续,而MSI-X中断机制可以支持更多的中断请求,而并不要求中断向量连续。与MSI中断机制相比,MSI-X中断机制更为合理。本章将首先介绍MSI/MSI-X Capability结构,之后分别以PowerPC处理器和x86处理器为例介绍MSI和MSI-X中断机制。


[1] 通过发送Assert_INTx和Deassert_INTx消息报文进行中断请求,即虚拟中断线方式。

时间: 2024-09-11 05:56:49

第6章 MSI和MSI-X中断机制的相关文章

word打开失败 提示缺失各种.MSI的解决办法

  针对打开WORD后(大多是WIN7系统),出现的各种类似GENKO.MSI,PRO11.MSI,DATA1.MSI,MINI.MSI--等等各种MSI的缺失以及弹出windows installer对话框的解决方案. 1.现在,很多人都已经知道如何用光盘或U盘来给自己做系统了.但是有的系统盘在做完系统后会出现一个问题,那就是新装系统的WORD在打开时,总会弹出一个windows installer的对话框,提示GENKO.MSI缺失,要求你安装一个什么什么文件. 虽然说只要点一下[取消],就

在安装vs2010 service pack1 时一直提示缺少silverlight_SDk.msi

问题描述 在安装vs2010 service pack1 时一直提示缺少silverlight_SDk.msi 在安装vs2010 service pack1 时一直提示缺少silverlightSDk.msi,RiaServices.msi,ShareManagementObjectsx86chs.msi,SQLSysClrTypesx86chs.msi,Vcruntimex86.msi,Vcruntimex64.msi. 关于silverlightSDk.msi,我已经去官网下载了Silve

Windows 8系统下安装MSI文件时报2869的错误

解决方案: 1. 我们先把 msi 文件放到C盘中,就是你系统安装目录了: 2. 然后我们在此目录下创建一个.bat文件,然后把下面代码放到这个    msiexec /i 系统盘盘符:\msi文件名.msi 然后我们把它名字改成.bat文件 即可. 3. 再者我们再右键运行该批处理,以管理员身份运行 就可以正常运行msi文件.

1.4 PCI总线的中断机制

PCI总线使用INTA#.INTB#.INTC#和INTD#信号向处理器发出中断请求.这些中断请求信号为低电平有效,并与处理器的中断控制器连接.在PCI体系结构中,这些中断信号属于边带信号(Sideband Signals),PCI总线规范并没有明确规定在一个处理器系统中如何使用这些信号,因为这些信号对于PCI总线是可选信号.PCI设备还可以使用MSI机制向处理器提交中断请求,而不使用这组中断信号.有关MSI机制的详细说明见第8章. 1.4.1 中断信号与中断控制器的连接关系 不同的处理器使用的

把.NET程序部署到没有安装.NET Framwork的机器上

程序 目录 本文内容 制作自己的安装程序 发布.NET Framework 制作自己的native安装程序 使用方法 总结 作者 -------------------------------------------------------------------------------- 本文内容 1. 使用VS.NET来制作安装程序. 2. 如何把.NET Framework 部署到目标机器. 3. 如何使用Native代码把.NET Framework和自己的安装程序制作为一个统一的安装程

无法访问windows installer服务解决方法

在 Windows XP 中安装程序时出现"The Windows Installer Service Could Not Be Accessed"(无法访问 Windows Installer 服务)错误消息. 要解决此问题,请按照下列步骤操作: 方法一: 卸载,重新安装windows installer服务 一.先用dos命令窗口msiexec /unregserver 停掉windows installer服务. 二.下载InstMsiW.exe,用winrar解压开.进入目录.

尝试安装 Office 时收到无法访问 Windows Installer 服务

当您尝试安装 Microsoft Office 时,可能会收到类似以下内容的错误消息: 无法访问 Windows Installer 服务. 原因分析: 如果 Windows Installer 文件已损坏或丢失,可能会发生此问题. 解决方案: 要解决此问题,请使用下列方法之一. 方法一:使用 Msconfig 工具确认 Installer 服务正在运行 1. 单击"开始",单击"运行". 2. 键入 msconfig,然后单击"确定". 3.

jquery-barcode:js实现的条码打印

这是一个纯js的jQuery插件,项目地址:http://barcode-coder.com/en/barcode-jquery-plugin-201.html 使用示例: 1 <!doctype html> 2 <html> 3 <head> 4 <title>jQuery Barcode</title> 5 <script type="text/javascript" src="jquery-1.4.4.m

jQuery插件jquery-barcode实现条码打印的方法_jquery

本文实例讲述了jQuery插件jquery-barcode实现条码打印的方法.分享给大家供大家参考,具体如下: 这是一个纯js的jQuery插件,项目地址:http://barcode-coder.com/en/barcode-jquery-plugin-201.html 使用示例: <!doctype html> <html> <head> <title>jQuery Barcode</title> <script type="