转http://blog.chinaaet.com/justlxy/p/5100057842

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

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

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

Next Capability Pointer也是只读的,其用于查找下一个Capability Structure的位置,其值为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

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

如下图所示:

PCIe扫盲——中断机制介绍(MSI)相关推荐

  1. PCIe扫盲系列博文连载目录

    转载自 http://blog.chinaaet.com/justlxy PCIe扫盲系列博文连载目录篇(第一阶段) 1.前言篇:PCIe扫盲--PCIe简介:http://blog.chinaaet ...

  2. PCIe学习笔记之MSI/MSI-x中断及代码分析

    本文基于linux 5.7.0, 平台是arm64 1. MSI/MSI-X概述 PCIe有三种中断,分别为INTx中断,MSI中断,MSI-X中断,其中INTx是可选的,MSI/MSI-X是必须实现 ...

  3. PCIE——第 10 章—— MSI 和 MSI⁃X 中断机制

    摘要:PCIE--第 10 章--MSI 和 MSI⁃X 中断机制 目录 第 10 章  MSI 和 MSI⁃X 中断机制 10. 1 MSI / MSI⁃X Capability 结构 10. 1. ...

  4. 【ZYNQ】中断机制介绍(一)

    [ZYNQ]中断机制介绍 中断介绍 GIC特点 RPU规范GIC特点 APU规范GIC特点 GIC代理中断控制器 系统中断 GIC中断系统架构 RPU GIC中断控制器 软件生成中断 共享外设中断 共 ...

  5. pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)

    原标题:[博文连载]PCIe扫盲--Ack/Nak 机制详解(一) 前面在数据链路层入门的文章中简单地提到过Ack/Nak机制的原理和作用,接下来的几篇文章中将对Ack/Nak机制进行详细地介绍. A ...

  6. PCIe扫盲系列博文连载目录篇(第一阶段)

    转载地址:http://blog.chinaaet.com/justlxy/p/5100053251 本文为PCIe扫盲系列博文连载目录篇(第一阶段),所谓第一阶段就是说后面还有第二阶段和第三阶段-- ...

  7. PCIe扫盲——热插拔简要介绍

    转载地址:http://blog.chinaaet.com/justlxy/p/5100057851 某些特殊的应用场合可能要求PCIe设备能够以高可靠性持续不间断运行,为此,PCIe总线采用热插拔( ...

  8. linux禁用及启用pcie设备,KVM 介绍(4):I/O设备直接分配和 SRIOV [KVM PCI/PCIe PassThrough SRIOV]...

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  9. PCIe扫盲——PCIe简介

    转载地址:http://blog.chinaaet.com/justlxy/p/5100053066 PCI-Express是继ISA和PCI总线之后的第三代I/O总线,即3GIO. 由Intel在2 ...

最新文章

  1. wxpython富文本_Python实例讲解 -- wxpython 基本的控件 (文本)
  2. java 鼠标绘图,教您如何用JAVA程序实现鼠标绘图
  3. 第三章 可扩展标记语言XML
  4. jquery字符串转数组
  5. 在Cloud9上搭建Yii开发环境
  6. 机器学习第六篇:详解支持向量机算法
  7. pos加盟申请php_ThinkPHP万能表单程序源码 报名预约加盟申请调查表单程序源码
  8. VM Workstation 虚拟机安装Ghost XP教程
  9. 同步数据太多php网页卡死_curl_multi网页假死/卡死的解决方法
  10. WPS图片精简版 Ver.3.0.5
  11. mmc rescan简析
  12. excel 函数 用=引用后,筛选功能排序,结果引用位置错乱
  13. android 开机自动运行程序
  14. CH330显示未知USB设备(设备描述符请求失败)
  15. 【elementUI】el-table树形结构样式修改-gif展示说明 按要求自取即可
  16. 控制导弹发射的计算机应用属于,计算机应用基础17.doc
  17. java图片加文字水印_JAVA实现图片的修改,添加文字水印效果
  18. 唠一唠 消息可靠性保障消息幂等性处理 (RabbitMQ实际应用问题)
  19. 信息孤岛影响_OKR如何打破组织的孤岛
  20. 提供一站式AI口语评测能力,声网AI互动课堂全新升级

热门文章

  1. 迅雷使用积分制的真正作用和目的 [揭密迅雷]
  2. 数据抓取必须学会的三种技术
  3. 10月1日起,Github又有重大改变!
  4. 五、Leetcode算法 最长公共前缀
  5. 全黄的碟~~~~~~~~~~~~~~····
  6. 旋流除砂器的安装使用有哪些问题
  7. 操作系统进程的软中断通信
  8. Mybatis反向工程
  9. 在Web Directions Code上获得推文并赢得Kindle Fire!
  10. 计算机图形学-正交投影与透视投影