news 2026/2/21 19:18:58

pcie 配置请求与存储器请求

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pcie 配置请求与存储器请求
  • 配置请求 = 找设备、设参数、读 BAR、枚举 BDF(靠BDF 路由
  • 存储器请求 = 真正读写寄存器、数据交互(靠地址 + ATU 路由

PCIe 只有两种核心请求

  1. 配置请求(Configuration Request)
  2. 存储器请求(Memory Request)

配置请求 Config Request

用途:找设备、管设备

什么时候用?

  • 内核扫描 PCIe 拓扑
  • 读 Vendor ID/Device ID
  • 读 / 写BAR寄存器
  • 配置BDF 路由表(Primary/Secondary/Subordinate Bus)
  • 配置MSI 中断、电源、链路速度
  • 访问ECAM 地址触发的就是它

路由方式:

只看 BDF,按 Bus 号路由 → 桥只转发,不看 Dev/Func

走哪里:

CPU → ECAM → Root Port →BDF 路由表→ 桥 → 设备配置空间

关键:

和地址无关,和 BAR 无关,和 ATU 无关!

存储器请求 Memory Request

用途:真正干活(读写寄存器、DMA)

  • 驱动ioread32 / iowrite32
  • 读写设备内部寄存器
  • 读写设备片上 RAM
  • 设备 DMA 读写内存

路由方式:

只看地址 → 走 ATU 翻译 → 地址路由

走哪里:

CPU →BAR 物理地址→ Root Port →ATU 翻译→ PCIe 总线地址 → 设备

关键:

和 BDF 路由表无关!只认地址。

核心区别

项目配置请求 Config存储器请求 Memory
干啥枚举、配置、读 BAR、设 BDF读写寄存器、DMA、数据交互
路由依据BDF(Bus 号)CPU 物理地址(BAR)
谁转发桥的 BDF 路由表Root Port / ATU
地址类型ECAM 地址BAR 物理地址
是否走 ATU不走必须走 ATU
硬件行为桥逐级转发地址翻译 + 直达设备
触发来源内核 PCI 子系统驱动 / 设备 DMA
  • 配置请求 = 给设备上户口、分配地址、设门牌号
  • 存储器请求 = 按门牌号直接上门访问

IO 请求

远古遗留的 “独立小地址空间” 访问请求

  • x86 才有(64KB IO 空间)
  • ARM64 根本没有
  • 现代 PCIe 基本不用
  • 路由方式和存储器请求几乎一样,只是地址空间不同

访问操作

  • CPU 执行:inb/outb/inw/outw/inl/outl
  • 访问独立的 IO 地址空间(不是内存,不是配置)
  • 最大64KB(0x0000 ~ 0xFFFF)
  • 设备通过IO BAR声明自己要用这段空间

它和 Memory 请求唯一区别:

  • 地址空间不一样
  • 路由、转发逻辑几乎一样(都是地址路由)
  • 不走 BDF 路由

IO 请求 硬件流程(x86)

CPU 执行 outl(0x3F8, val) ↓ 发出 IO 地址 0x3F8 ↓ 送到 Root Port ↓ 地址路由(匹配 IO 范围) ↓ 发到 PCIe 总线(IO 报文) ↓ 设备识别:这是我的 IO 地址 ↓ 响应

没有 ATU 翻译,没有 BDF 查表,纯地址路由;

IO 请求 = 访问 x86 独有的 64KB IO 空间;

真实硬件流程对比

① 配置请求流程(内核扫设备)

  1. CPU 访问ECAM 地址
  2. 解析出BDF = 01:00.0
  3. Root Port 查BDF 路由表
  4. 桥按 Bus 号逐级转发
  5. 到达设备配置空间
  6. 读 / 写BAR、命令寄存器

② 存储器请求流程(驱动读寄存器)

  1. 驱动访问BAR 虚拟地址
  2. 转为CPU 物理地址
  3. Root Port 查ATU
  4. 翻译成PCIe 总线地址
  5. 直接发到目标设备
  6. 读写设备寄存器

总结

  • ECAM → 触发配置请求
  • BDF 路由表 → 配置请求专用
  • BAR → 分配存储器请求的地址
  • ATU → 存储器请求地址翻译
  • Root Port → 同时管两种请求
  • DMA → 存储器请求反向
  • 配置请求 = 管设备(BDF 路由)
  • 存储器请求 = 用设备(地址 + ATU)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/19 8:32:26

Qwen3-Reranker vs 传统检索:效果对比可视化

Qwen3-Reranker vs 传统检索:效果对比可视化 1. 为什么重排序是RAG精度的“最后一公里” 在构建一个真正可靠的RAG(检索增强生成)系统时,我们常常会陷入一个认知误区:只要向量库够大、嵌入模型够强,就能召…

作者头像 李华
网站建设 2026/2/21 15:56:29

AWPortrait-Z使用手册:新手必看的10个技巧

AWPortrait-Z使用手册:新手必看的10个技巧 AWPortrait-Z 基于Z-Image精心构建的人像美化LoRA 二次开发webui构建by科哥 本文目标:手把手带你快速上手AWPortrait-Z人像美化WebUI,聚焦实际操作中的高频痛点与高效解法。不讲抽象原理&#xff…

作者头像 李华
网站建设 2026/2/16 8:53:17

AnimateDiff文生视频参数详解:seed复现性验证与创意可控性平衡

AnimateDiff文生视频参数详解:seed复现性验证与创意可控性平衡 1. 引言:从文字到动态画面的魔法 想象一下,你脑海中有一个生动的画面:一位少女站在海边,微风轻轻吹动她的长发,夕阳的余晖洒在海面上波光粼…

作者头像 李华
网站建设 2026/2/20 9:33:37

惊艳效果展示:Qwen2.5-VL多模态语义评估引擎实战案例

惊艳效果展示:Qwen2.5-VL多模态语义评估引擎实战案例 想象一下,你正在构建一个智能电商搜索系统。用户上传了一张“带木质手柄的复古咖啡杯”图片,并输入文字“找类似风格但容量更大的杯子”。系统返回了上百个商品,但其中混杂着…

作者头像 李华
网站建设 2026/2/20 3:04:38

Qwen3-TTS语音生成实测:10秒搞定多语种配音

Qwen3-TTS语音生成实测:10秒搞定多语种配音 1. 前言:当文字有了声音 你有没有想过,给一段文字配上声音,能有多简单? 过去,想要一段专业的配音,要么得花钱请人录,要么得自己学复杂…

作者头像 李华
网站建设 2026/2/17 12:54:59

Qwen-Image应用案例:生成产品展示图的技巧

Qwen-Image应用案例:生成产品展示图的技巧 1. 为什么电商团队都在悄悄用Qwen-Image做主图? 你有没有遇到过这些场景: 运营同事凌晨三点发来消息:“明天大促,20张新品主图还没做,能加急吗?”设计…

作者头像 李华