【PCIe 总线及设备入门学习专栏 4.5 -- PCIe Message and PCIe MSI】

文章目录

    • PCIe Message 与 MSI
      • PCIe Message 和 MSI 的作用与关系
      • MSI 的配置与寄存器
      • MSI 和 ARM GIC 的关系
      • 示例:MSI 在 ARM GIC 的实际应用
      • 总结

PCIe Message 与 MSI

本文将介绍 PCIe message 的作用以及message 与 MSI 的关系,再介绍 MSI 如何配置以及MSI有哪些寄存器,及MSI 与 ARM 中的GIC的关系。
在这里插入图片描述

PCIe Message 和 MSI 的作用与关系

  1. PCIe Message 的作用
    PCI Express(PCIe)是一种高速串行总线,其中使用消息传递(Message)机制代替了传统并行总线中的引脚信号。例如,传统 PCI 总线使用专门的引脚传递中断请求(IRQ 信号),而 PCIe 则通过发送消息完成中断、错误报告等功能。
  • 主要用途:
    1. 中断通知 :用来代替传统中断引脚方式,比如 MSI (Message Signaled Interrupt)

    2. 系统错误报告 :例如热插拔事件、数据链路错误等,PCIe 协议定义了诸如 ERR_COR, ERR_FATAL 等错误消息。

    3. 电源管理 :通知设备的电源状态变化(例如进入低功耗模式)。

    4. 配置和控制 :例如在 Root Complex 和 Endpoint 之间交换消息。

  1. Message 和 MSI 的关系
    MSI(Message Signaled Interrupt)是 PCIe 中实现中断的一种机制,其作用是通过消息代替传统硬件信号(中断引脚)来通知 CPU 发生了中断。
  • 传统中断的劣势

    1. 中断引脚数量有限,不适合扩展。

    2. 在共享引脚的情况下,中断源需要额外的软件逻辑确定具体来源。

  • MSI 的优势

    1. 消除了中断引脚的物理限制,可以通过消息的形式支持更多中断源。

    2. 支持多个中断向量(MSI-X 可以支持多达 2048 个中断)。

    3. 提高了效率,特别是在多核系统中,可以将中断直接路由到特定的核。


MSI 的配置与寄存器

  1. MSI 配置步骤
    MSI 的配置是在设备的配置空间完成的,包括如下步骤:

  2. 启用 MSI 功能

  • 设置设备的配置空间中的 MSI Control 字段以启用 MSI。
  1. 设置中断向量
  • 为设备分配一个或多个中断向量,这些中断向量会映射到 CPU 的中断控制器。
  1. 设置消息地址与消息数据
  • Message Address:CPU 或中断控制器的地址,用于接收中断消息。

  • Message Data:与中断向量相关联的数据。

  1. 启用中断:
  • 配置完成后,设备可以生成 MSI 消息通知中断。
  1. 相关寄存器
    MSI 的相关寄存器位于 PCI 配置空间(Capability Structure)中,主要包括:
  • MSI Control 寄存器

    • 是否启用 MSI。

    • 是否支持多向量 MSI。

  • Message Address 寄存器

    • 存储中断消息的目的地址,通常为 CPU 或中断控制器的地址。
  • Message Data 寄存器

    • 包含中断向量值或其它与中断相关的信息。
  • MSI-X 表 (针对 MSI-X):

    • 用于存储多个向量地址和数据。

MSI 和 ARM GIC 的关系

在 ARM 架构中,常用的中断控制器是 GIC (Generic Interrupt Controller),其主要作用是管理和分发中断。在 PCIe 系统中,MSI 由 PCIe 设备发送,最终需要被 GIC 处理。1. GIC 的作用

  • GIC 接收 PCIe 发出的 MSI。

  • 将 MSI 转换为对应的中断 ID,分发到对应的 CPU。

  • GIC 负责中断优先级管理、中断屏蔽、中断分发等功能。

  1. 工作流程
  2. PCIe 设备生成 MSI 消息
  • 包括 Message AddressMessage Data

  • Message Address 配置为 GICD 中对应的中断管理地址。

  1. GIC 解析 MSI 消息
  • GIC 使用 MSI 的 Message Data 解析出具体的中断 ID。
  1. 中断分发
  • GIC 将解析的中断分发到特定的 CPU。

  • 多核系统下,可以基于中断 ID 将中断发送到指定核。

  1. GIC 配置 MSI 示例
    以典型系统为例:
  • Message Address :PCIe MSI 地址配置为 GICD 的物理地址。

  • Message Data :设置为 GIC 的中断 ID。

  • 配置完成后,PCIe 中断通过 MSI 触发,最终由 GIC 接收并处理。


示例:MSI 在 ARM GIC 的实际应用

场景 :网络设备触发中断通知 CPU 处理数据包。

  1. PCIe 网络设备
  • 分配 MSI,中断向量为 32,对应 ARM GIC 的中断号。
  1. MSI 消息内容
  • Message Address:0xF400_0000(假设为 GIC 中 MSI 接收地址)。

  • Message Data:32。

  1. 系统行为
  • 网络设备检测到数据包到达,通过 PCIe 总线发送 MSI 消息。

  • GIC 收到 Message AddressMessage Data,将其映射为中断 ID。

  • 中断 ID 32 被分发到指定的 CPU 核处理。

通过上述流程,中断从 PCIe 设备传递到 CPU,实现了高效的中断通知。

总结

  • PCIe 消息 在 PCIe 中取代了传统硬件引脚信号,MSI 是其典型应用。

  • MSI 配置 涉及 Message Address 和 Message Data,存储在设备配置空间中。

  • MSI 与 GIC 的结合 使得 PCIe 设备与 ARM 架构协同工作,为高效的中断处理提供了支持。

推荐阅读
https://aijishu.com/a/1060000000289702

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945361.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ThinkPHP 8高效构建Web应用-第一个简单的MVC应用示例

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 我们先实现一…

NSSCTFpwn刷题

[SWPUCTF 2021 新生赛]nc签到 打开附件里面内容 import osart (( "####!!$$ ))#####!$$ ))(( ####!!$:(( ,####!!$: )).###!!$:##!$:#!!$!# #!$: #$#$ #!$: !!!$:\ "!$: /\ !: /"\ : /"-."-/\\\-."//.-"…

Vue多页面路由与模版解析

上篇文章中我们成功打包并输出了多页文件,而构建一个多页应用能够让我们进一步了解项目配置的可拓展性,可以对学习 Vue 和 webpack 起到强化训练的效果,本文将在此基础上主要针对多页路由及模板的配置进行系列的介绍。 路由配置 1. 跳转 在…

UE5材质节点SimpleGrassWind

SimpleGrassWind节点可以模拟树叶扰动,或小草晃动效果 用来做风格化树、风格化草效果很好 主要节点 前三个节点分别用来控制,风强度,风重力,风速度,WPO是世界位置偏移

macrodroid通过http请求控制手机运行宏

macrodroid adb命令 adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS例:http请求手机播放指定MP3文件 声音素材_电量过低提醒 新建一个宏 添加触发器-连接-http服务器请求 路径随意填,最好不要有特殊符号,不然浏览器识别链接会出错,…

单片机中运行多个定时器

在单片机的裸机编程环境中,同时运行多个定时器是完全可行的,但需要注意一些关键点以确保系统的稳定性和效率。以下是一些考虑因素和实现方法: 1. 硬件支持 定时器数量:首先确认您的单片机是否具备足够的定时器资源。大多数现代…

快速上手LangChain(一)

文章目录 LangChain一、背景二、什么是langchain三、Components 组件Prompt templates 提示模板Chat models 聊天模型Messages 消息Document loadersText Spltters 文本分割Vectorstores 向量数据库 四、langchain基础概念Tool calling 工具调用(1) 工具…

大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!

大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!DeepSeek-V3上线即开源;OpenAI 发布高级推理模型 o3https://mp.weixin.qq.com/s/9qU_zzIv9ibFdJZ5cTocOw?token47960959&langzh_CN 「青稞大模型Weekly」,持…

记录一下图像处理的基础知识

记录一下自己学习的图像处理的基础知识。 一、图像的文件格式以及常用的图像空间 1、文件格式 常见的图像文件格式有 jpg, png, bmp, gif (1)jpg:有损压缩算法,大幅减小文件大小,便于存储和传输,兼容性…

时间敏感网络中全面分析与调度的模型驱动方法

论文:A Model-Driven Approach for the Comprehensive Analysis and Scheduling in Time-Sensitive Networks》 背景与动机 TSN 的发展与应用领域:自 2012 年起,IEEE 802.1 TSN 任务组致力于开发通信标准,增强 IEEE 802 网络&…

QT---------GUI程序设计基础

代码UI化设计(QT) 实例功能概述 假设我们要创建一个简单的计算器应用程序。该应用程序具有以下功能: 包含数字按钮(0-9)、操作符按钮(、-、*、/)、等于按钮()和清除按…

大模型提示词初探

大模型提示词初探 在与大模型交互的过程中,提示词起着至关重要的作用,它犹如给模型下达的精准任务指令,直接影响着模型生成内容的准确性、高效性与合理性。合理运用提示词,能够有效减少模型出现错误和幻觉的情况,从而…

Navicat 连接 SQL Server 详尽指南

Navicat 是一款功能强大的数据库管理工具,它提供了直观的图形界面,使用户能够轻松地管理和操作各种类型的数据库,包括 SQL Server。本文将详尽介绍如何使用 Navicat 连接到 SQL Server 数据库,包括安装设置、连接配置、常见问题排…

【Linux】进程间通信-> 共享内存

共享内存原理 在C语言/C中,malloc也可以在物理内存申请空间,将申请的物理内存空间通过页表映射到进程地址空间,将内存空间的起始地址(虚拟地址)返回,进而进程可以使用虚拟地址通过页表映射到物理内存的方式…

高仿CSDN编辑器,前端博客模板

高仿CSDN编辑器纯前端模板,使用的js、html、vue、axios等技术,网络请求库已进行封装,可以按需调整界面,需要源码联系(4k左右)。 1.支持代码高亮 2.支持目录点击定位 3.支持文件上传、图片上传(需要自己写后端接口) 4.M…

国产低代码框架zdppy开发笔记002 标准的接口响应

前言 通过前面的学习, 我们已经知道了zdppy_api和zdppy_req的基本用法, 接下来我们会在学习中多次用到这两个框架. 我们已经知道了该如何响应一个字符串,但是我们该如何响应json数据呢? 在zdppy_api中,我们定义了一组规范的API响应, 我们慢慢来看看. 规范的响应 首先来看…

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

牛客周赛 Round 74

D. 预知 题目链接 题意有点绕,简单来说是其中一堆牌,问最少预知几张才能保证任取两张都不会导致种类重复。一开始对每张牌种类不是已知的,已知的是每种牌的牌数。 思路就是相当于把其中一种明牌,保证任取两张都不会导致种类重复…

【linux学习指南】SIGCHLD信号

文章目录 📝SIGCHLD信号🚩总结 📝SIGCHLD信号 进程⼀章讲过⽤wait和waitpid函数清理僵⼫进程,⽗进程可以阻塞等待⼦进程结束,也可以⾮阻塞地查询是否有⼦进程结束等待清理(也就是轮询的⽅式)。采⽤第⼀种⽅式,⽗进程阻塞了就不能处理⾃⼰的⼯…

AI助力SEO优化的关键词策略解析

内容概要 在数字营销的快速发展中,人工智能(AI)正逐步成为提升搜索引擎优化(SEO)效果的重要工具。关键词策略是SEO成功的关键要素之一,而AI技术的应用使得这一过程更加高效和精准。在关键词研究中&#xf…