![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PCIe
文章平均质量分 79
咸鱼弟
在你想要放弃的那一刻, 想想为什么当初走到了这里。
展开
-
PCIe总线中Root Complex(RC)
RC是PCIe体系结构的一个重要组成部件,也是一个较为混乱的概念。RC的提出与x86处理器系统密切相关。事实上,只有x86处理器才存在PCIe总线规范定义的“标准RC”,而在多数处理器系统,并不含有在PCIe总线规范中涉及的,与RC相关的全部概念。原创 2023-10-24 10:30:11 · 1366 阅读 · 1 评论 -
PCIe架构的处理器系统介绍
不同的处理器系统中,PCIe体系结构的实现方式不尽相同。PCIe体系结构以Intel的x86处理器为蓝本实现,已被深深地烙下x86处理器的印记。在PCIe总线规范中,有许多内容是x86处理器独有的,也仅在x86处理器的Chipset中存在。在PCIe总线规范中,一些最新的功能也在Intel的Chipset中率先实现。本节将以一个处理器系统为例简要介绍RC的实现,并简单归纳RC的通用实现机制。原创 2023-10-24 10:16:53 · 730 阅读 · 0 评论 -
PCIe系统中Switch介绍
本节主要介绍Switch的内部结构。从系统软件的角度上看,每一个PCIe链路都占用一个PCI总线号,但是一条PCIe链路只能连接一个PCI设备,Switch、EP或者PCIe桥片。PCIe总线使用端到端的连接方式,一条PCIe链路只能连接一个设备。原创 2023-10-24 09:48:45 · 4263 阅读 · 0 评论 -
lspci源码
显示Linux系统的pci设备最简单的方法就是使用lspci命令原创 2023-10-16 19:16:06 · 719 阅读 · 0 评论 -
PCIe ECAM机制
PCI Express Enhanced Configuration Access Mechanism (ECAM)是访问PCIe配置空间的一种机制。原创 2023-05-27 14:15:18 · 3355 阅读 · 0 评论 -
【精讲】PCIe Quality of Service(QoS)机制
本章主要讲解PCIe 在TLP层的一个特性,Quality of Service(QoS)——服务质量。QoS其实并不是一个陌生的词,在计算机系统中,我们经常接触到,比如网卡的QoS,FC卡的QoS等。本章讲解在PCIe规范中,在TLP层,也有该机制。一个常用的场景如:通过PCIe总线传输视频流,这需要对实时性要求高,提前识别到这些需求,通过调整流量的优先级,来保证视频流数据在PCIe系统中实时被传输。原创 2022-10-05 11:23:12 · 2694 阅读 · 0 评论 -
PCIe物理层LTSSM状态机解析
在PCIe链路可以正常工作之前,需要对PCIe链路进行链路训练,在这个过程中,就会用LTSSM状态机。LTSSM全称是Link Training and Status State Machine。这个状态机在哪里呢?它就在PCIe总线的物理层之中。LTSSM状态机涵盖了11个状态,包括Detect, Polling, Configuration, Recovery, L0, L0s, L1, L2, Hot Reset, Loopback, Disable。这11个状态之间转换的逻辑,如下...原创 2022-03-22 10:42:46 · 8933 阅读 · 4 评论 -
PCI Device Class Codes
PCI class code 详解原创 2022-03-20 17:23:13 · 1116 阅读 · 4 评论 -
Linux源码阅读——PCI总线驱动代码(三)PCI设备枚举过程
linux源码阅读,PCI设备枚举过程。原创 2022-03-06 09:30:00 · 3705 阅读 · 6 评论 -
Linux源码阅读——PCI总线驱动代码(二)配置空间访问设置
linux源码阅读pci设备驱动加载过程。原创 2022-03-05 17:17:47 · 1609 阅读 · 4 评论 -
Linux源码阅读——PCI总线驱动代码(一)整体框架
linux 源码分析pci设备初始化流程。原创 2022-03-05 16:19:57 · 3836 阅读 · 5 评论 -
【精讲】PCIe基础篇——Type0 & Type1配置头及配置请求过程
配置空间的头部有两种类型,Type0与Type1,分别给非桥设备(Endpoint),和桥设备(Root和Switch端口中的P2P桥)来使用,配置头部的对比如下图所示。原创 2021-10-30 07:29:44 · 6180 阅读 · 4 评论 -
【精讲】PCIe基础篇——Non-Prefetchable & Prefetchable MMIO
MMIO 有两种,Non-Prefetchable MMIO:非预取内存空间Prefetchable MMIO :可预取内存空间Prefetchable MMIO:将MMIO的一个区域设置为可预取的,允许CPU提前获取该区域中的数据,以预测请求者在不久的将来可能需要比实际请求更多的数据。对数据进行这种小规模缓存是安全的,因为读取数据不会改变目标设备上的任何状态信息。也就是说,读取位置的行为没有副作用。例如,如果请求者请求从一个地址读取128个字节,则Completer可能也会预取下一个...原创 2021-08-08 10:46:23 · 6109 阅读 · 8 评论 -
【精讲】PCIe基础篇——Memory & IO 地址空间
在早期的PC中,IO设备中的内部寄存器/存储是通过IO地址空间(由Intel定义)来访问的。然而,由于与IO地址空间相关的一些限制和不良影响(我们在这里不讨论),IO地址空间很快就失去了软件和硬件供应商的青睐。这导致IO设备的内部寄存器/存储被映射到内存地址空间(通常称为Memory mapped IO,或MMIO)。然而,由于早期的软件是使用IC地址空间来访问IO设备上的内部寄存器/存储,因此在内存中映射同一组特定于设备的寄存器成为了一种常见的做法。也就是说把这些IO设备中的内部存储和寄存...原创 2021-08-07 22:18:24 · 4588 阅读 · 5 评论 -
【精讲】PCIe基础篇——BAR配置过程
BAR基础介绍请参考【博文连载】PCIe基础篇——BAR(Base Address Register)详解本节讲解BAR的填充过程。实例一:请求一个4KB,non-prefetchable memory address space(NP-MMIO)过程一般需要系统软件(BIOS/OS)操作下图1的三步。表1 Results of Reading the BAR after Writing All Is To It图132-Bit Non-Prefetchable Me...原创 2021-08-07 17:39:28 · 11818 阅读 · 9 评论 -
【精讲】PCIe基础篇——BAR(Base Address Register)详解
gg原创 2021-08-07 12:24:50 · 31890 阅读 · 8 评论 -
【精讲】PCIe基础篇——BDF与配置空间
BDF PCIe总线中的每一个功能都有一个唯一的标识符与之对应。这个标识符就是BDF(Bus,Device,Function)BUS:总线号,最多可以通过配置软件分配256个总线号。初始总线号,总线0,通常由硬件分配给Root Complex。总线0由一个集成了端点的虚拟PCI总线和一个硬编码的设备号和功能号的虚拟PCI-to-PCI桥(P2P)组成。每个P2P网桥创建一个新的总线,附加的PCle设备可以连接到该总线。每个总线必须被分配一个唯一的总线号。配置软件通过搜索从总线0、...原创 2021-07-31 11:55:37 · 11997 阅读 · 7 评论 -
【精讲】PCIe基础篇——Switch/Bridge/Root Complex/EndPoint
先上一张图PCIe拓扑特征:图的顶部是一个CPU。这里要说明的一点是,CPU被认为是PCle层次结构的顶层。PCle只允许简单的树结构,这意味着不允许循环或其他复杂的拓扑结构。这样做是为了保持与PCI软件的向后兼容性,PCI软件使用一个简单的配置方案来跟踪拓扑,不支持复杂的环境。为了保持这种兼容性,软件必须能够与以前相同的方式生成配置周期,总线拓扑也必须与以前相同。因此,软件期望找到的所有配置寄存器仍然在那里,并且以它们始终具有的方式运行。在上图PCIe系统中有几种设备类型,Root Compl原创 2021-07-25 16:50:00 · 34843 阅读 · 14 评论 -
PCI与PCIe学习之二——软件篇
文章转载自:点击打开链接本篇主要介绍PCI和PCIe的软件界面和UEFI对PCI的支持。PCI/PCIe软件界面1。配置空间PCI spec规定了PCI设备必须提供的单独地址空间:配置空间(configuration space),前64个字节(其地址范围为0x00~0x3F)是所有PCI设备必须支持的(有不少简单的设备也仅支持这些),此外PCI/PCI-X还扩展了...原创 2018-06-27 22:29:10 · 13225 阅读 · 8 评论 -
PCI与PCIe学习一——硬件篇
文章转载自:点击打开链接 最近在学习驱动开发过程中涉及到PCI相关知识,在网上看了很多文章,良莠不齐,我总结一下比较好的文章分享给大家,那就从源头开始说起。PCI总线和设备树是X86硬件体系内很重要的组成部分,几乎所有的外围硬件都以这样或那样的形式连接到PCI设备树上。虽然Intel为了方便各种IP的接入而提出IOSF总线,但是其主体接口(primary interface)...原创 2018-06-27 22:08:50 · 86017 阅读 · 16 评论 -
【精讲】PCIe基础篇——PCIe传输速率计算
我们在接触PCIe设备时会接触到一个词,传输速率,比如8GT/s。GT/s —— Giga transation per second (千兆传输/秒),即每一秒内传输的次数。重点在于描述物理层通信协议的速率属性,可以不和链路宽度等关联。Gbps —— Giga Bits Per Second (千兆位/秒)。GT/s 与Gbps 之间不存在成比例的换算关系。PCIe 吞吐量计算方法:吞吐量 = 传输速率 * 编码方案例如:PCI-e2.0 协议支持 5.0 GT/s,即每一条Lane 上支.原创 2020-10-05 10:57:14 · 26841 阅读 · 14 评论