首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【译文】【第二章①】Mindshare PCI Express Technology 3.0

它包括用于实现功能的配置寄存器的空间,一个功能如何总线上被发现,配置事务是如何被生成和路由到正确的位置,PCI 兼容空间与 PCIe 扩展空间之间的差异,以及软件是如何区分端点和桥。...图2‑3 并行总线的局限 PCIe 这样的串行传输方法是如何处理这些问题的呢?...2.1.4.4 原生与传统端点 (Native PCIe Endpoints and Legacy PCIe Endpoints) 端点PCIe 拓扑中的既不是交换机也不是桥的设备,它们可以作为总线上事务的发起者也可以作为事务的完成者...用于老式总线(例如 PCI-X)的设备,如今拥有了可供它们使用的 PCIe 接口,这种 PCIe 接口将在配置寄存器中将自身标识为“传统 PCIe 端点”。...与之相反,“原生 PCIe 端点”是从一开始就被设计用来在 PCIe 系统中使用的,这区别于在旧的 PCI 设备上添加 PCIe 接口。原生 PCIe 端点设备是内存映射设备

1.6K20

原来PCIe这么简单,一定要看!

作为x86体系关键的一环,PCIe标准历经PCI,PCI-X和PCIe,走过近30年时光。其中Host发现与查找设备的方式却一脉沿袭,今天我们先来聊一聊PCIe设备在一个系统中是如何发现与访问的。...这么多的设备,CPU启动后要怎么去找到并认出它们呢? Host对PCIe设备扫描是采用了深度优先算法,过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。...Number寄存器分别设置成2和3,因为Bus3下面挂的是端点设备(叶子节点),下面不会再有下游总线了,因此Bridge 4的Subordinate Bus Number的值可以确定为3。...至此,挂在PCIe总线上的所有设备都被扫描到,枚举过程结束,Host通过这一过程获得了一个完整的PCIe设备拓扑结构。 ? 系统上电以后,host会自动完成上述的设备枚举过程。...PCIe memory空间关联的是PCIe设备物理功能,对于STAR1000系列芯片而言,物理功能是NVMe,memory中存放的是NMVe的控制与状态信息,对于NMVe的控制以及工作状态的获取,都需要通过

13.3K2018
您找到你想要的搜索结果了吗?
是的
没有找到

【译文】【第二章②】Mindshare PCI Express Technology 3.0

img 图2‑12 PCI Express 设备层次示意图 图2‑12 所展示的 PCIe 设备内部层次包括: 设备核心层以及它与事务层的接口。设备核心层实现设备的主要功能。...如果设备是一个端点,那么它最多可以包含 8 个功能(function),每个功能实现自己的配置空间。如果设备是一个交换机,那么它的核心由数据包路由逻辑和为了实现路由的内部总线构成。...如果设备是一个 RC,那么核心会实现一个虚拟的 PCI 总线 0,在这个虚拟的 PCI 总线 0中存在着所有的芯片组嵌入式端点以及虚拟桥。 事务层。...这个“返回地址”其实很简单,它就是 PCI 中定义的设备 ID,这个设备 ID 由三个东西组成:发起方所属 PCI 总线在系统中的 PCI 总线号、发起方在所属 PCI 总线上的设备号、发起方在所属设备中的功能号...例如,有一些消息是报告式写请求,目的方为特定的完成方;有一些是根组件向所有端点广播的请求;还有一些是端点发出的要自动路由到根组件的请求。

1.1K20

PCI Express 系列连载篇(十八)

PCIe体系结构的组成部件 PCIe总线作为处理器系统的局部总线作用与PCI总线类似,主要目的是为了连接处理器系统中的外部设备,当然PCIe总线也可以连接其他处理器系统。...在PCIe体系结构中,也存在PCI总线号的概念,编号方式与PCI总线兼容。一个基于PCIe架构的处理器系统A如图4-7所示。 ?...这两个FSB-to-PCIe桥分别推出一个×16和×8的PCIe链路,其中×16的PCIe链路连接显卡控制器(GFX),编号为PCI总线1;×8的PCIe链路连接一个Switch进行PCIe链路扩展。...一些低端的处理器并没有提供PCIe总线,此时需要使用PCIe桥将PCI总线转换为PCIe总线,才能与其他PCIe设备互连。这种用法初看比较奇怪,但是在实际应用中,确实有使用这一功能的可能。...[4] PCIe端口之间的直接通信过程也被称为Peer-to-Peer传送方式。 [5] PCIe总线中的Switch与网络应用的Switch的功能并不相同,而与网络应用中的Route功能接近。

1.6K30

【教程】查看GPU与PCIe版本和匹配速率

device_info=$(lspci -n | grep -i $id | awk '{print $3}') echo "设备编号: $id" echo "设备类型: $...-d $device_info -vvv | grep -i width echo done 运行效果 字段解释 设备编号41:00.0,在许多情况下,一个物理设备,如显卡,可以有多个功能。...这些功能在系统中作为独立的设备处理,但它们实际上是同一个物理硬件的不同部分: 41 是总线号; 00 是设备号; 0 在这里是功能号,表示这是该设备的第一个功能;如果是1,就表示第二个功能; LnkCap...它提供了关于设备如何与计算机其他部分通信的信息。 Port #0: 这指的是设备连接到的端口编号。在这种情况下,它是端口号 0。这是一个内部参考,用于区分同一设备或同一主板上的不同端口。...GT/s 是一种测量 PCIe 总线速度的单位,它衡量的是数据包的传输速率,而不是实际的数据传输速率。每个数据包都包含一些额外的信息(如错误检测代码),所以实际的数据传输速率会稍低。

1.2K10

PCIe的XDMA应用

之前介绍的PCIe实物模型为PIO模式,可编程PIO模式,软件控制CPU在主机总线上发起一个存储器或IO读写总线周期,并以映射在PCIe设备地址空间的一个地址为目标,根据PCIe总线宽度的区别,...另一种PCIe实物模型为DMA模型,直接存储器读取方式实现PCIe设备与系统存储器之间的数据传送,这种传输放大效率较高,因为在数据传送过程中不需要CPU参与,且传送一个数据只需要一个突发总线周期。...Device/Port Type:选择设备与端口类型,为端点设备。...PCIe BARs: PCIe to AXI Lite Master Interface:使能,这样可以在主机一侧通过PCIe来访问用户逻辑侧寄存器或者其他AXI-Lite总线设备。...当数据从上位机通过PCIe接口发送到端点设备,XDMA内部自行解包对将数据与指令进行分析,得到读写操作的指令地址,并对DDR进行读写操作。

4.4K20

PCIe系列第二讲、PCIe的OSI模型与事务层分析(上)

PCIe的OSI模型与事务层概述 PCIe协议定义了三层结构,分别是:物理层、数据链路层、事务层,每个层次按照协议中规定的内容,完成相应的数据处理功能,各层都分为发送和接收两功能块。 ?...在Xilinx芯片内部集成有PCIe硬核端点模块,能够自动完成数据链路层和物理层的数据处理,采用该方法时,用户只需要设计事务层的逻辑电路,完成事务层包(TLP)的处理即可。...PCIe事务层作用 事务层的作用是产生TLP包,接收PCIe设备核心层的数据请求,并将其转换为PCIe总线事务,PCIe总线使用的这些总线事务在TLP头中被定义,如存储器读写、IO读写、配置读写总线事务...PCIe事务层格式 当处理器或其他的PCIe设备访问PCIe设备时,所传送的数据报文首先通过事务层被封装为一个或者多个TLP,之后才能通过PCIe总线的各个层次发送出去。 ?...TLP头,并以此支持PCIe V2.1规范的一些新功能。。

2.3K31

PCI总线的桥与配置(二)

第7位为1表示当前PCI设备是多功能设备,为0表示为单功能设备。...对于PCIe设备,该寄存器的值无意义,因为PCIe设备在进行数据传送时,在其报文中含有一次数据传送的大小,PCIe总线控制器可以使用这个“大小”,判断数据区域与Cache行的对应关系。...下文将举例说明PCI总线配置请求的转换原则,并以图2‑8为例说明处理器如何访问PCI设备01和PCI设备31的配置空间。...值得注意的是,与HOST主桥直接相连的PCI总线编号都为0,因此当处理器系统中存在多个HOST主桥时,将有多个编号为0的PCI总线,但是这些编号为0的PCI总线分属不同的PCI总线域,含义并不相同...在这种映射关系之下,一条PCI总线中,与信号线AD16相连的PCI设备设备号为0;与信号线AD17相连的PCI设备设备号为1;以此类推,与信号线AD31相连的PCI设备设备号为15。

1.8K31

PCI总线的桥与配置(一)

因为从软件层面上看,MPC8548处理器的PCIe总线控制器与PCI/PCI-X总线控制器功能类似。...在一颗PCI总线树中,总线号由系统软件决定,通常与HOST主桥直接相连的PCI总线编号为0,系统软件使用DFS(Depth-First Search)算法扫描PCI总线树上的所有PCI总线,并依次进行编号...在一个PCI设备中最多有8个功能设备,而且每一个功能设备都有各自的PCI配置空间,而在绝大多数PCI设备中只有一个功能设备。HOST主桥使用寄存器号,访问PCI设备配置空间的某个寄存器。...在许多嵌入式处理器系统中,即含有PCI设备也含有PCIe设备,为此MPC8548处理器同时提供了PCI总线PCIe总线接口,在这个处理器系统中,PCI设备可以与PCI总线直接相连,而PCIe设备可以与...本节仅简单介绍Intel的HOST-to-PCI主桥如何产生PCI的配置周期,有关Intel HOST-to-PCIe主桥[9]的详细信息参见第5章。

1.3K50

串行总线技术(一)-串行总线结构(以PCIe为例)

串行总线技术(一)-串行总线结构(以PCIe为例) 串行总线的出现 在早期的计算机系统中,多数外围设备使用并行总线结构。这些总线包括PCI和PATA(并行ATA)。...缺点 串行总线也存在一些不利之处。 只支持点到点连接 通过串行总线只能连接两个设备,而对于并行总线,可以在单一总线上连接多个设备,并目.很容易增减总线上的设备。...在串行总线结构中,总线设备中需要包括两个基本电路部件:MAC控制器(通常简称为控制器)和PHY(主要实现模拟收发功能)。MAC具有分层结构,通常包括三个 层次。PHY包括两个部分:PCS和PMA。...下面我们将以PCIe和SATA为例,对串行总线结构加以分析,如图所示。 MAC控制器包括三个层次:PHY逻辑层 、 数据链路层和事务层。每一层都有自己特定的功能。...串行总线时钟 在PCIe中,平台提供100MHz参考时钟,通过PCIe插槽提供给总线设备PCIe端点设备PCIe连接器处获取该参考时钟并将其交给PHY PMA层。

2.9K10

优秀ICFPGA开源项目

所有内存和外围设备都通过单个叉骨总线访问。 冯诺依曼架构,意味着指令和数据共享一个公共总线。...这是SI-RISCV/e200_opensource中维护的 Hummingbird E203 项目的升级版本,所以我们称之为 Hummingbirdv2 E203,架构如下图所示。...riffa PCIe https://github.com/KastnerRG/riffa RIFFA(FPGA 加速器的可重用集成框架)是一个简单的框架,用于通过 PCI Express 总线将数据从主机...不需要了解总线地址、缓冲区大小或 PCIe 数据包格式。只需在 FIFO 接口上发送数据并在 FIFO 接口上接收数据。RIFFA 不依赖于 PCIe 桥接器,因此不受桥接器实现的限制。...相反,RIFFA 直接与 PCIe 端点一起工作,并且运行速度足够快以使 PCIe 链路饱和。软件和硬件接口都得到了极大的简化。详细信息可以在硬件接口页面上找到。

2.7K11

PCIe热插拔技术

注:本文将简单地介绍一下PCIe总线的热插拔机制,关于热切换(Hot Swap),请参考PCIe Spec的相关章节。 PCIe设备使用两种电源信号供电,分别是Vcc与Vaux,额定电压为3.3V。...除此之外PCIe总线还使用了下面重要的辅助信号-PRSNT1#和PRSNT2#信号。 PCIe总线的热插拔主要指的是PCIe设备的热插拔,以及相关的实现机制等。...与PCI总线不同,PCIe总线采用的是点到点的连接(Point-to-Point Connections),因此并不像PCI总线那样需要用于卡设备的隔离逻辑(Isolation Logic),但是每个端口...当然,热插拔不仅仅是硬件的事,需要软硬件协同实现。要想实现热插拔功能,操作系统、主板热插拔驱动器、PCIe设备驱动以及PCIe卡硬件功能都必须支持热插拔,缺一不可。...从PCIe设备硬件功能的角度来看,需要支持Quiesce命令、Pause命令(可选)、Start命令和Resume命令。

3.4K41

PCI Express 系列连载篇(十六)

绝大多数PCI/PCI-X总线使用的总线事务都被PCIe总线保留,而PCI设备使用的配置空间也被PCIe总线继承。...但是从体系系统的角度上看,PCIe总线还是增加了一些新的特性,其中一些特性不仅仅是称呼上的变化,而且在功能上也得到了增强。如在PCIe体系结构中出现的RC(Root Complex)。...RC的主要功能与PCI总线中的HOST主桥类似,但是在HOST主桥的基础上增加了许多功能。...虽然从系统软件的角度上看,PCI总线PCIe总线基本一致。但是从硬件设计的角度上看PCIe总线完全不同于PCI总线,基于PCIe总线各类设备的硬件设计难度远大于基于PCI总线的对应设备的设计难度。...目前PCIe总线规范,依然在迅猛发展,但并不是所有PCIe设备都支持这些在PCIe总线的最新规范中提及的概念。

79020

【译文】【第一章①】Mindshare PCI Express Technology 3.0

1.2 PCI与PCI-X PCI(Peripheral Component Interface外设组件接口)总线被开发出来的时间为1990年代初,当时人们期望用它来解决PCs(personal computer...而PCISIG一直在探索如何将PCI-X的速率进一步提升,但最终这项努力还是被放弃了。...图 1‑1基于旧PCI总线的平台 1.3.2 PCI总线发起方(Initiator)与目标方(Target) 在PCI层次结构中,总线上的每个设备(device)可以包含多达8个功能(function...),这些功能都共享该设备总线接口,功能编号为0到7(一个仅具有单功能设备通常将被分配功能号0)。...当这样的反射信号到达初始的buffer时,buffer驱动器的低输出阻抗会中止这个信号的传输以及停止继续反射。

1.8K10

PCI Express 系列连载篇(十七)

表4-1 PCIe总线规范与总线频率和编码的关系 ? 如上表所示,不同的PCIe总线规范使用的总线频率并不相同,使用的数据编码方式也不相同。...PCIe总线使用的信号 PCIe设备使用两种电源信号供电,分别是Vcc与Vaux,额定电压为3.3V。...PCIe设备除了可以使用WAKE#信号实现唤醒功能外,还可以使用Beacon信号实现唤醒功能。与WAKE#信号实现唤醒功能不同,Beacon使用In-band信号,即差分信号D+和D-实现唤醒功能。...此外SMBus上的从设备具有超时功能,当从设备发现主设备发出的时钟信号保持低电平超过35ms时,将引发从设备的超时复位。...因为PCIe总线的传送延时仍然是制约在大规模处理器系统互连中应用的重要因素。 ?

1.5K10

Linux PCI和PCIe总线

1 PCIe中断 – PCI/PCIe设备中断都是level触发,并且请求信号为低电平有效 – PCI总线一般只有INTA#到INTD#的4个中断引脚,所以PCI多功能设备的func一般不会超过4个...3 Linux x86 PCIe调试 3.1 PCIe设备分类 – RC,BDF为00:00.0 – bridge就像hub,一般是个多功能设备,传递数据需要仲裁,比较慢 – switch就像交换机...,PCIe规范中引入,比较快 – endpoint,x86主板上内置设备总线号一般为0,而外挂EP的总线号一般从1开始 Figure 3-1 Type0 Header Figure 3-2 Type1...)和func号一般通过宏PCI_DEVFN()合并成一个字节 – 因为PCI规范允许单个系统拥有高达256个总线,所以总线编号是8位。...但对于大型系统而言,这是不够的,所以,引入了域的概念,每个PCI域可以拥有最多256个总线,每个总线上可支持32个设备,所以设备号是5位,而每个设备上最多可有8种功能,所以功能号是3位 – I210一般连接在

5.9K40

pcie总线授时卡的使用

因此,串行 PCI Express( PCIe)总线标准凭借高速串行传送特性以及能够支持更高的传输频率、无需共享总线带宽等优势,经推出就得到了迅速的发展,并开始逐步取代 PCI总线。...由于TLP的数据包中包含TLP前缀、TLP头以及TLP摘要等信息,因此,当设备在进行单次数据传输( 每个报文数据负载长度为 1) 时PCIe总线的性能优势并不明显,传输速度甚至还不如PCI总线。...PCIe总线是为将来的计算机和通讯平台定义的一种高性能、通用 I/O 互连总线,在其物理实现上使用了高速差分的方式来实现数据传输,与此同时,端到端的连接方式使得每条PCIe链路中只能连接两个设备,因此相比于...PCI 所有设备共享总线带宽来说,PCIe 总线具有独享传输通道数据带宽的特性与PCI总线相比,PCIe 总线主要有下面的技术优势: 1) 是串行总线,进行点对点传输,每个传输通道独享带宽; 2)...产品功能 (1)支持PCIE总线授时,时间精度优于10us; (2)内置高精度授时型GPS/BD双模接收机; (3)外参考失锁后依靠内置高精度时钟守时; (4)支持即插即用(Plug and Play)

1.3K00

PCI Express 系列连载篇(二十)

在TLP的Type字段中存放TLP的类型,即PCIe总线支持的总线事务。该字段共由5位组成,含义如表5-2所示。 表5-2 Type[4:0]字段 ? ?...PCIe总线规范还定义了MRdLk报文,该报文的主要作用是与PCI总线的锁操作相兼容,但是PCIe总线规范并不建议用户使用这种功能,因为使用这种功能将极大影响PCIe总线的数据传送效率。...1 TH位、TD位和EP位 TH位为1表示当前TLP中含有TPH(TLP Processing Hint)信息,TPH是PCIe V2.1总线规范引入的一个重要功能。...2 AT字段 AT字段与PCIe总线的地址转换相关。在一些PCIe设备中设置了ATC(Address Translation Cache)部件,这个部件的主要功能是进行地址转换。...PCIe总线设置Length字段的目的是提高总线的传送效率。 当PCI设备在进行数据传送时,目标设备并不知道实际的数据传送大小,这在一定程度上影响了PCI总线的数据传送效率。

1.2K20

PCIe系列第八讲、MSI和MSI-X中断机制

在x86处理器系统中,PCIe设备使用的Message Address字段仍保存PCI总线域的存储器地址,格式为: 其中第31~20位存放FSB Interrupt存储器空间的基地址,值为0xFEE...当PCIe设备对“0xFEEx_xxxx”这段“PCI域”的地址空间进行写操作时,MCH/ICH会首先进行“PCI总线域”到“存储器域”的地址转换,之后将这个写操作翻译为FSB总线的Interrupt...但是当一个PCIe设备支持多个MSI中断请求时,Message Data字段必须是连续的,即使用的vector字段是连续的,使用MSI-X机制有效的解决了该问题。...Delivery Mode 该字段标识着如何处理来自PCIe设备的中断请求。...———————————————————— 最后以一个实例对中断机制进行说明:X86处理器如何使用FSB总线Interrupt Message事务?

14.4K42

PCI Express 系列连载篇(八)

第7位为1表示当前PCI设备是多功能设备,为0表示为单功能设备。...对于PCIe设备,该寄存器的值无意义,因为PCIe设备在进行数据传送时,在其报文中含有一次数据传送的大小,PCIe总线控制器可以使用这个“大小”,判断数据区域与Cache行的对应关系。...为了实现这个“预先执行”功能,PCI设备需要提供一段ROM程序,而处理器在初始化过程中将运行这段ROM程序,初始化这些PCI设备。...其中Subordinate Bus Number寄存器存放当前PCI子树中,编号最大的PCI总线号。...而Secondary Bus Number寄存器存放当前PCI桥Secondary Bus使用的总线号,这个PCI总线号也是该PCI桥管理的PCI子树中编号最小的PCI总线号。

1.3K21
领券