首页 > 其他分享 >PCIe扫盲——PCIe总线基本概念

PCIe扫盲——PCIe总线基本概念

时间:2024-12-17 11:32:57浏览次数:6  
标签:Lane 扫盲 总线 PCIe PCI Root 设备

PCIe总线的提出可以算是代表着传统并行总线向高速串行总线发展的时代的到来。实际上,不仅是PCI总线到PCIe总线,高速串行总线取代传统并行总线是一个大的趋势。如ATA到SATA,SCSI到USB等……

不过,为了兼容之前的PCI总线设备,虽然PCIe是一种串行总线,无法再物理层上兼容PCI总线,但是在软件层上面却是兼容PCI总线的。

和很多的串行总线一样,PCIe采用了全双工的传输设计,即允许在同一时刻,同时进行发送和接收数据。如下图所示,设备A和设备B之间通过双向的Link相连接,每个Link支持1到32个通道(Lane)。由于是串行总线,因此所有的数据(包括配置信息等)都是以数据包为单位进行发送的。

image

与绝大部分的高速连接一样,PCIe采用了差分对进行收发,以提高总线的性能。一个PCIe Lane的例子如下图所示:

image

除了差分总线,PCIe还引入了嵌入式时钟的技术(Embedded Clock),即发送端不再向接收端发送时钟,但是接收端可以通过8b/10b的编码从数据Lane中恢复出时钟。一个简单的时钟恢复电路模型如下图所示:

注:PCie Gen3以及之后的版本采用了128b/130b的编码方式。

image

PCIe相对于PCI总线的另一个大的优势是其的Scalable Performance,即可以根据应用的需要来调整PCIe设备的带宽。如需要很高的带宽,则采用多个Lane(比如显卡);如果并不需要特别高的带宽,则只需要一个Lane就可以了(比如说网卡等)。

和PCI-X总线一样,由于非常高的传输速度,PCIe是一种点对点连接的总线,而不像PCI那样的共享总线。但是PCIe总线系统可以通过Switch连接多个PCIe设备,也可以通过PCIe桥连接传统的PCI和PCI-X设备。一个简单的PCIe总线系统的拓扑结构图如下所示:

注:这里的Switch实际上包含了多个类似于PCI总线中桥的概念。

image

图中的Root Complex经常被称为RC或者Root。在PCIe的Spec中,并没有特别详细的关于Root Complex的定义,从实际的角度来讲,可以把Root Complex理解为CPU与PCIe总线系统通信的媒介。Endpoint处于PCIe总线系统拓扑结构中的最末端,一般作为总线操作的发起者(initiator,类似于PCI总线中的主机)或者终结者(Completers,类似于PCI总线中的从机)。显然,Endpoint只能接受来自上级拓扑的数据包或者向上级拓扑发送数据包。

  • PCIE endpoint:普通 的 pcie设备

  • Legacy PCIe Endpoint是指那些原本准备设计为PCI-X总线接口的设备,但是却被改为PCIe接口的设备。

  • Root complex Intergrated Endpoint:是一种集成了Root Complex(根复数)和Endpoint(端点)功能的设备。

Root complex则是相当于USB HOST。管理PCIe总线上的所有设备,处理设备的初始化、配置、事务请求和中断处理。

标签:Lane,扫盲,总线,PCIe,PCI,Root,设备
From: https://www.cnblogs.com/linhaostudy/p/18611977

相关文章

  • PCIe扫盲——PCIe总线怎样做到在软件上兼容PCI总线
    前面的文章中多次说道,PCIe总线在软件上是向前兼容PCI总线的。因此,PCIe总线完整的继承了PCI总线中的配置空间(ConfigurationHeader)的概念。在PCIe总线中也有两种Header,Header0和Header1,分别代表非桥和桥设备,这与PCI总线是完全一致的。在PCIe总线中,非桥设备也就是Endpoint。如下图所......
  • WIFI&蓝牙(ESP32)转CAN总线&串口TTL模块 - micropython开发环境搭建
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 题外话:脚本语言运行原理: https:......
  • PCIe扫盲——PCI总线配置周期产生和配置寄存器
    上一篇文章中也是说到了,I/OAddressSpace的空间很有限(64KB),所以一般在I/OSpace中都有两个寄存器,第一个指向要操作的内部地址,第二个存放读或者写的数据。因此,对于PCI的配置周期来说,包含了两个步骤:Step1:CPU先对IOAddress中的0xCF8~0xCFB写入要操作的配置寄存器的地址。如下图所示......
  • 【计组不挂科】计算机组成第六章< 总线 >习题库(选择题&判断题&填空题&填空计算题)(含答案与解
    前言大家好吖,欢迎来到YY滴计算机组成系列,热烈欢迎!本章主要内容面向接触过C++的老铁本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考本章为分章节的习题内容题库,试卷与大题库可以看下面传送门其他博客【计组不挂科】计算机......
  • PCIe扫盲——PCI总线的地址空间分配
    PCI总线具有32位数据/地址复用总线,所以其存储地址空间为2的32次方=4GB。也就是PCI上的所有设备共同映射到这4GB上,每个PCI设备占用唯一的一段PCI地址,以便于PCI总线统一寻址。每个PCI设备通过PCI寄存器中的基地址寄存器来指定映射的首地址。如下图所示:注:需要注意的是PCI的地址空间......
  • 为什么说总线伺服比脉冲伺服强?
    在现代工业自动化和精密控制领域,伺服系统无疑是技术发展的前沿。作为自动化控制的核心,伺服系统广泛应用于各种机械设备中,尤其是在高精度、高动态性能要求的应用场景下。总线伺服和脉冲伺服是市场上最常见的两种伺服技术,它们各自的特性、优缺点和适用场景存在着显著差异。然而,在......
  • 关于CAN总线转接器的PCB板设计方案
    一、题记关于CAN总线网上的资料很多,什么《看不会你打死我》或者《有史以来最简单通俗的CAN的讲解!》诸如此类的标题党确实很多了,但总体来说写的都还不错,这里我就不再赘述了,笔者也是看别人的博客学习的,大家可以自行百度。二、正文一般来说CAN总线有两种接法:1、闭环式接120R的......
  • PCIe扫盲——PCI总线的中断和错误处理
    PCI总线使用INTA#、INTB#、INTC#和INTD#信号向处理器发出中断请求。这些中断请求信号为低电平有效,并与处理器的中断控制器连接。在PCI体系结构中,这些中断信号属于边带信号(SidebandSignals),PCI总线规范并没有明确规定在一个处理器系统中如何使用这些信号,因为这些信号对于PCI总线是......
  • PCIe扫盲——PCI总线的三种传输模式
    本文来简单地介绍一下PCISpec规定的三种数据传输模型:ProgrammedI/O(PIO),Peer-to-Peer和DMA。三种数据传输模型的示意图如下图所示:首先来介绍一下ProgrammedI/O(PIO)PIO在早期的PC中被广泛使用,因外当时的处理器的速度要远远大于任何其他外设的速度,所以PIO足以胜任所有的任务。举......
  • PCIe扫盲——PCI总线中的Reflected-Wave Signaling
    PCISpec规定了每个PCI总线上最多可以连接多达32个PCI设备,但是实际上却远远达不到32个,33MHz的32位PCI总线一般只能连接10到12个负载。注:如果使用插槽连接,则一个连接算两个PCI设备,插槽和PCI卡分别算作一个PCI设备。也就是说一个33MHz的PCI总线最多只能连接4到5个插槽即PCI卡。这......