【博文连载】PCIe扫盲——中断机制介绍(MSI)

前面的文章中介绍过,MSI本质上是一种Memory Write,和PCIe总线中的Message概念半毛钱关系都没有。并且,MSI的Data Payload也是固定的,始终为1DW。

由于MSI也是从PCI总线继承而来的,因此MSI相关的寄存器也存在于配置空间中的PCI兼容部分(前256个字节)。如下图所示,MSI有四种类型:

其中Capability ID的值是只读的,05h表示支持MSI功能。

Next Capability Pointer也是只读的,其用于查找下一个MSI的位置,00h则表示到达Linked List的最后了。

Message Control Register用于确定MSI的格式与支持的功能等信息,如下图所示:

具体描述如下:

Message Address Register:32-bit最低两位固定为0,使得该地址是DW对齐的。

Mask Bits将相关的中断向量(Interrupt Vector)屏蔽后,该MSI将不会被发送。软件可以通过这种方式来使能或者禁止某些MSI的发送。如果相关中断向量没有被屏蔽,则如果发生了相关中断请求,这时Pending Bits中的相应bit则会被置位。一旦中断信息被发出,则该bit会立即被清零。

注:可能有的人会有疑惑了(无论是Mindshare的书,还是PCI的Spec都没有明确解释),因为Mask Bits和Pending Bits都只有32位,而8位的中断向量号最多可以表示256个!显然,32位最多只能对应32个中断向量号,无法支持256个的。实际上,一般的系统不会支持256个中断向量号的,32个就已经足够用了,所以并不用担心这个问题。

PCIe设备会根据配置空间中的MSI请求信息,来创建Memory Write TLP,来讲MSI信息发送出去。作为一种特殊的TLP,传递MSI的TLP需要遵循以下规则:

·         No Snoop和Relaxed Ordering bits的值必须为0

·         TLP长度值必须为01h

·         First BE必须为1111b

·         Last BE必须为0000b

·         地址是直接从配置空间中的响应位置复制过来的

如下图所示:

 

(0)

相关推荐

  • CRC基本原理和计算方式

    循环冗余校验(CRC)  背景 循环冗余校验码(CRC) 是在数字数据的生成.传输.处理或存储过程中用于错误检测的最广泛使用的代码之一.简单来说,CRC 码在传输.处理和数据静止期间保持数据的完整性. ...

  • PCIe架构概述(四)

    PCIe专题 非报告事务 普通读:图2-18显示了一个从端点发送到系统内存的内存读取请求的示例.有关TLP内容的详细讨论,请参阅第5章,标题为"TLP Element",但是任何存 ...

  • 高速串行技术(二)之(PCIe中的基本概念)

    写在前面的话: 预备了前面的并行串行传输的基础知识,就是为了一个PCIe的项目,搞得头疼,一个例子都跑了一下,看到能够识别心里高兴了一把,但是打开代码一看 完全不懂 查找资料 很多 但是也很凌乱 比清 ...

  • 【博文连载】PCIe扫盲——中断机制介绍(MSI-X)

    PCI总线自3.0版本开始支持MSI-X机制,对MSI做出了一些升级和改进,以克服MSI机制的三个主要的缺陷: 1.     随着系统的发展,对于特定的大型应用,32个中断向量不够用了(参考前一篇文章 ...

  • 【博文连载】PCIe扫盲——中断机制介绍(INTx)

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

  • 【博文连载】边缘检测算法介绍

    所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征.边缘存在于目标.背景和区域之间,所以,它是图像分割所依赖的最重要的依据.由于边缘是位置的标志,对灰度的变化不敏感,,因此,边缘 ...

  • 【博文连载】Cypress CY7C68013 介绍

    由于现在的ARM大部分都集成了USB接口,而FPGA由于纯逻辑电路(不要拿异构FPGA比如MPSOC等说事),想要用Verilog HDL设计一个USB2.0内核难度相当大,并且还需要一个PHY,因此 ...

  • 【博文连载】OV7725寄存器介绍

    首先介绍一下OV7725的寄存器.OV7725总共有172个寄存器,作为CMOS Sensor的工作模式的配置.而这172个寄存器,有些只读,有些则同时支持读写功能.在传感器正常工作工作前,必须进行寄 ...

  • 【博文连载】OV7725 Sensor介绍

    好了,废话不再多说.经过了前面几个例程,LED的驱动显示应该不在话下,VGA其实真的只是固定行场时序扫描的问题,SDRAM可以站在巨人的肩膀上,我们已经完成了基本的视频图像采集流程.如果有办法在前面加 ...

  • ​【博文连载】Wishbone总线介绍

    图29 Wishbone总线结构图 ● 所有应用使用一个总线体系结构: ● 简单.紧凑的体系结构: ● 支持多控制器: ● 64位地址空间: ● 8-64 位数据总线(可扩展): ● 单周期读和写: ...

  • 【博文连载】AMBA总线介绍

    先进的微控制器总线体系结构AMBA规范定义了三种总线: (1)AHB(Advanced High-performance Bus):用于连接高性能系统模块.它支持突发数据传输方式及单个数据传输方式,所 ...

  • 【精品博文】MIPI扫盲——DSI介绍(二)

    目录篇地址:http://blog.chinaaet.com/justlxy/p/5100052503  这一篇来简单的介绍一下MIPI DSI Video Mode的三种操作模式: Non-Busr ...