全新Linux教程-驱动大全-PCI和PCIe子系统-P6-PCIe路由方式

本文详细解析了PCIe总线中的三种路由方式:基于ID的路由用于配置读写,地址路由用于数据传输,而隐式路由则用于中断和广播消息。文章还介绍了TLP报文头部的格式以及配置过程中的地址空间分配和桥接机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 三种路由方式

PCIe总线继承了PCI总线的地址路由和ID路由,并且添加了隐式路由。数据的传输要确定如何找到对方?所谓的路由就是如何找到对方。PCIe协议中有三种方式路由:

  • 基于ID的路由:基于ID是指通过B D F 信息找到是设备。一般在配置过程
  • 基于地址的路由:配置后,通过地址路由
  • 隐式路由---例如某个pcie设备发送中断后,通过隐式路由发送给RC

TLP报文是如何表示自己使用哪种方式的路由?主要是TLP的头部。看哪一位?fmt三位和type的4位分别有什么含义??例如,如果是IORd IOWr是使用地址路由,对于配置读配置写就是通过ID路由,而对于MSI中断消息,就是使用隐式路由了(注意,下图可以发现当使用msg消息时,通过后三位确定是用什么方式发给RC,当然这些都是一些规则细节)。

访问PCIe设备时,要先配置,才能读写数据:

  • 配置读、配置写:使用**基于ID的路由**,就是使用<Bus, Device, Function>来寻找对方。配置成功后,每个PCIe设备都有自己的PCIe地址空间了。
  • 内存读、内存写或者IO读、IO写:
    • 发出报文给对方:使用**基于地址的路由**
    • 对方返回数据或者返回状态时:使用**基于ID的路由**
  • 各类消息,比如中断、广播等:使用**隐式路由**

2 基于ID的路由方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyDog0623

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值