
PCIe技术
PCIe技术专栏
北冥的备忘录
善读者,玩索而有得焉,则终身用之,有不能尽者矣。
本博客是笔者的个人实践记录,文笔随意,严谨度一般,仅供参考,不喜勿喷
展开
-
【微知】PCIe网卡如何查看当前pcie是几个lane比如x4 x8还是x16?(lspci -vvv查看LnkCap和LnkSta; /sys/bus/pci/devices/*/*link*)
有些时候知道某个网卡的宣称的物理极限速率,但是实际插入到服务器上由于某些设置、物理接口限制(比如x4 x8)或者其他拓扑带来的变化,造成实际生效的速率并非理论值。此时如何得知实际的PCIe上的实际速率?原创 2025-04-12 23:43:05 · 609 阅读 · 0 评论 -
微知-力科LeCroy PCIe协议分析仪软件基本使用方式与下载链接?
用户手册下载总览:https://zh-cn.teledynelecroy.com/support/techlib/productmanuals.aspx?-> Event Trigger模式 -> Buffer Size设置(2G 如果开机扫描)-> Speed(8GT/s根据实际PCIe) -> Link Width(x8 比如x8的lan口)-> OK。-> 等待发包后trigger -> 完成抓包 -> 点击停止 -> 查看 -> 存储file -> save as。原创 2025-01-04 01:46:17 · 1070 阅读 · 0 评论 -
微知-如何查看PCIe设备插入在哪个插槽以及对应的busid?(biosdecode)
但是无法知道某个slot插入的是什么设备?那有什么方法可以查看吗?本文主要介绍biosdecode命令以及查看PCIe slot,以及在该slot上的BUS ID等BDF信息。原创 2024-10-16 23:51:18 · 1543 阅读 · 0 评论 -
手撕烂笔头-sriov的本质是什么?
vf把自己配置空间的bar 基础地址寄存器给到remap 读取出设备的配置空间 然后读写配置空间进而相当于操作设备 这一点类似于i2c spi等写驱动 读写寄存器和设备交付 设备空间通过寄存器指定。sriov由硬件提供pf vf的pcie配置空间 pf的配置空间涵盖了vf的 配置空间里面的header读取device id和vendor id。虚拟化时候把pcie配置空间直接remap到虚拟机内部 虚拟机可以直接访问 从而达到性能无损耗。通过pcie读取设备id等 完成路由子设备 相当于复用。原创 2023-07-29 13:58:34 · 302 阅读 · 0 评论 -
PCIe版本发布历史
gt因为有纠错码等机制 不同版本有效字段不同 比如记得pcie早期版本就是8/10方式 传10个8个是payload。- 17年 PCIe4.0 16GT/s x16可到 200gb+- 19年 PCIe5.0 32GT/s x16可到 400gb+- 10年 PCIe3.0 8GT/s x16可到100gb+- 03年 PCIe1.0 2.5GT/s单lane。- 预计 25年 PCIe7.0 128GT/s?- 07年 PCIe2.0 5GT/s单lane。- 22年 PCIe6.0 64GT/s。原创 2023-07-28 08:48:17 · 745 阅读 · 0 评论 -
手撕烂笔头-pcie两种类型报文type0和type1区别
每个bridge上面会存储他的上游bus 叫做primary bus,自己叫secondary bus,自己的子节点bus叫。每一个bus number代表的是某一个级别的总线 比如rc下面是bus1,bridge1下面是bus2。发送type1类型需要指定bus number和devicebumber 然后是fn和reg。发送type0类型只用指定 function number和reg。也就是bdf寻址方式在type1采用全。type0 普通设备。原创 2023-07-31 08:04:50 · 909 阅读 · 0 评论 -
手撕烂笔头-pcie驱动读取与内存访问方式的相似性与独特性
为了达到这个效果需要pcie驱动帮忙,cpu访存是cpu的地址空间 pcie控制器是pcie地址空间 序号映射,映射方式是pcie 配置空间的bar寄存器指定空间大小 然后告诉cpu cpu预留CPU空间给设备,映射之后cpu访存就能访问到pcie设备。另外pcie总线上的物理层协议有待研究是类似于以太网的冲突检测还是类似wifi的冲突避免机制还是其他。pcie也实现类似方式, cpu和pcie控制器通过一个内存地址进行读写pcie设备。cpu--pcie控制器--pcie设备。原创 2023-07-31 07:37:48 · 336 阅读 · 0 评论 -
pcie的rc ep ats atc acs at关系
at 是pcie报文中两个bit表示当前访问是否经过了iommu转换了 一般第一次ats转换后 由atc中缓存,下次使用直接atc取然后tlp报文at标记已转换 所以是基于信任的 当然同时带来了问题。at是pcie tlp报文中的字段2bit 表示这个报文是否已经转换地址 如果atc查到就会标记为已转换 同时也可能被恶意标记。ats atc是地址转换的两种功能 s是第一次在rc去请求转运地址 c是第一次转换后的缓存 类似cpu的tbl。如果是虚拟地址 就需要到iommu去做地址转换 需要转换就标记at。原创 2023-07-28 08:35:07 · 2034 阅读 · 1 评论 -
手撕烂笔头-从硬件视角看pcie的一个lane到底是什么?
本质pcie的一个lane就是一个双向通信的单元,因为pcie是穿行的是类似pci转uart,简单理解可以叫做pci+rs485,用串行解决两个pci冰箱的问题 一个是高频干扰 一个是距离传输。txp和n是positive negative 差分信号的+和-即 TX+ TX-所以平时所讲的x8 x16 x32的lane其实就是多组双工差分传输。一个lane=txn + txp + rxn + rxp。相当于是两组收发,四根线。可能还有辅助线以后补充。所以lane的核心就是全双工的4根差分线。原创 2023-07-31 08:34:00 · 3259 阅读 · 1 评论