【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构

这篇具有很好参考价值的文章主要介绍了【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

👉个人主页:highman110

👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 

目录

 PCIE总线结构

PCI总线结构组成

 HOST主桥

 PCI总线

 PCI设备

 HOST处理器

 PCI负载

 PCIE体系结构组成

 RC

 Endpoint

 Switch

 PCIE层次结构

事务层

数据链路层

物理层


参考文章:PCI_Express体系结构导读 

 PCIE总线结构

PCI总线结构组成

        PCIE是PCI发展而来的,我们先看一下PCI的总线结构,下图从《PCI Express体系结构导读》书中截取。把下图与计算机硬件体系结构的CPU-GPU-南桥-北桥结构对应一下,上面红框应该是集成在CPU中,下面的绿框集成在北桥中,剩下部分都是PCI设备或者PCI到其他总线的转换桥。这个集成方式不重要,不同的处理器系统会有差别,这里对应一下是为了有个直观的展示。

【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构

【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构​ 

        上图与PCI总线相关的模块包括:HOST主桥(即Host to PCI主桥,也称PCI主桥、PCI总线控制器)、PCI总线、PCI设备、PCI桥(即PCI to PCI主桥)、PCI to其他总线桥。PCI总线由HOST主桥或PCI桥推出。HOST主桥与主存控制器在同一级总线上(就是CPU到北桥的系统总线),所以PCI设备可以通过DMA操作经HOST主桥访问主存。PCI设备的DMA操作需要与处理器系统的cache进行一致性操作(cache一致性是指在采用层次结构存储系统的计算机系统中,保证高速缓冲存储器中数据与主存储器中数据相同机制,详见高速缓冲存储器一致性_百度百科 (baidu.com)),当PCI设备进行DMA操作时,cache一致性模块进行地址监听,并根据监听结果改变cache状态。

 HOST主桥

        Host主桥主要功能:1、隔离处理器系统的存储器域和PCI总线域;2、管理PCI总线域;3、完成处理器与PCI设备之间的数据交换(包括CPU访问PCI设备的地址空间,PCI设备使用DMA机制访问主存储器)。

 PCI总线

        如上结构图所示,PCI总线x0连在HOST主桥x,PCI总线x1通过PCI桥x1连接在HOST主桥x,整个HOST主桥x下挂的叫一个总线树。总线树可以包括多条PCI总线(就是用PCI桥扩出来的总线)。PCI总线由HOST主桥或PCI桥管理,用来连接各类设备,如声卡、网卡、IDE接口卡等。

 PCI设备

        PCI设备在总线规范上被称为PCI Agent设备,PCI设备可以分为三类:

        主设备:可以通过总线仲裁获得PCI总线控制权,主动向其他PCI设备或主存储器发起读写请求。

        从设备:只能被动接收来自HOST主桥或其他PCI设备的读写请求。

        桥设备:管理下游的PCI总线,并转发上下游总线之间的总线事务。

 HOST处理器

        严格来说,HOST处理器不是PCI总线结构的组成部分。HOST处理器可以通过HOST主桥,发起PCI总线的配置请求总线事务,并对PCI总线上的设备和桥片进行配置,注意,PCI总线树的直接管理者是HOST主桥,不是HOST处理器。HOST处理器是一个较为模糊的概念,在多核CPU中,所有core都可以通过HOST主桥访问其下的PCI总线树,但是在同一时间内,一颗PCI总线树有且只有一个HOST处理器。HOST处理器通过操作HOST主桥中设置的寄存器来管理PCI设备。

 PCI负载

        总线频率越高,能挂接的负载越少,但整条总线能提供的带宽越大。

【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构

 PCIE体系结构组成

        PCIE相对PCI的拓扑结构有了较大变化。PCI是并行总线型主从结构,同一条总线上的外部设备共享总线带宽,而PCIE采用了高速差分端到端传输,每条PCIE链路上只能连接两个设备。一个典型的PCIE拓扑结构如下,与PCIE结构相关的部件有RC、Switch、PCIE设备、PCIE to PCI桥:

【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构

 RC

        RC是PCIE体系结构中一个重要组成部件,同时RC也是一个概念比较模糊的部件。PCIE规范中并没有定义RC的实现细节,不同的处理器系统中,RC的实现有较大差异。有的处理器系统中,RC相当于PCIE主桥(类似于PCI的host主桥,主要完成存储器域到PCI总线域的地址转换),也有的处理器系统将PCIE主桥称为PCIE总线控制器,而在x86处理器系统中,RC除了包含PCIE总线控制器以外,还集成了一些PCI设备、RCRB(RC register block,由一系列管理存储器系统的寄存器组成)和event collector(处理来自PCIE设备的错误消息报文和PME消息报文)等组成部件。此外,处理器与RC连接的前端系统总线协议和电气特性一般与PCIE总线不兼容,所以RC还需要做信号协议与总线事务的转换。再外,再引入了虚拟化技术后,RC的实现变得更大复杂。

        这里不过多研究RC的结构,大家只需要大致知道,它一般实现了一条内部PCIe总线(BUS 0),以及通过若干个PCIe bridge,扩展出一些PCIe Port,如下图:

【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构

 Endpoint

        就是PCIE的终端设备,比如SSD、网卡、显卡等。

 Switch

        由于PCIE采用的是点对点连接,所以若PCIE设备大于RC端口数量,则需要用switch进行端口扩展。一个标准的switch有一个上游端口和多个下游端口,上游端口与RC或其他switch的下游端口相连,下游端口可以与EP、PCIE to PCI桥或其他switch的上游端口相连。如下图:

【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构

        对每个Switch来说,它下面的Endpoint或者Switch,都是归它管的。上游下来的数据,它需要甄别数据是传给它下面哪个设备的,然后进行转发;下面设备向RC传数据,也要通过Switch代为转发。因此,Switch的作用就是扩展PCIe端口,并为挂在它上面的设备(Endpoint或者Switch)提供路由和转发服务。每个Switch内部,也是有一根内部PCIe总线的,然后通过若干个Bridge,扩展出若干个下游端口,如下图所示:

【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构​ 

 PCIE层次结构

        了解完PCIE的硬件拓扑结构之后,再来看一下PCIE的逻辑层次结构。由于PCIE采用了差分高速链路一对一传输,去掉了PCI中一些边带信号引脚,比如INTx、PME#,但这些信号不能说去掉就去掉,还是要传输的,于是PCIE采用了数据包packet的形式将原来带外信号进行带内传输,不同的数据报文,比如有真实数据载荷、控制信号、管理信号等一些报文,这些不同报文在传输时需要用到各种模块,为了使这些模块规范化,PCIE采用了和网络传输类似的分层结构,这些层次结构在PCIE中都是硬件实现。

        PCIe定义了下三层:事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer,包括逻辑子模块和电气子模块),每层职能是不同的,但下层总是为上层服务的。分层设计的一个好处是,如果层次分得够好,接口版本升级时,硬件设计可能只需要改动某一层,其他层可以保持不动。RC、EP、switch都得分别实现这三层。如下图所示:

【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构

        PCIe传输的数据从上到下,都是以数据包(Packet)的形式传输的,每层数据包都有其固定的格式。

事务层

        事务层定义了PCIE总线使用的总线事务,大部分与PCI总线兼容。这些总线事务可以通过switch等设备传送到其他PCIE设备或RC。这一层的主要职责是创建(发送)或者解析(接收)TLP(Transaction Layer Packet)、流量控制、QoS、事务排序等。

数据链路层

        数据链路层的主要职责是保证事务层下发的报文能可靠、完整地传送到对端的数据链路层。事务层报文将在此层被添加sequence number前缀和CRC后缀。数据链路层使用Ack/Nak协议来保证数据的可靠传输。另外数据链路层还定义了多种DLLP(Data Link Layer Packet)、ACK/NAK协议信息、流控、电源管理功能都是通过DLLP来传递。需要注意的是,DLLP虽然名字叫数据链路层报文,但他不是TLP报文加上前缀和后缀。具体DLLP格式后面会讲。

物理层

        物理层的主要职责是处理所有的Packet数据物理传输,发送端数据分发到各个Lane传输(Stripe),接收端把各个Lane上的数据汇总起来(De-stripe),每个Lane上加扰(Scramble,目的是让0和1分布均匀,去除信道的电磁干扰EMI)和去扰(De-scramble),以及8b/10 b或128 b /130 b或其他方式的编码解码等。物理层还定义了LTSSM状态机,用来管理链路状态,并进行链路训练、链路恢复和电源管理(LTSSM的电源管理和DLLP的电源管理有什么不同?)另外,物理层定义了一些物理层专门的“序列”,有的地方称这些“序列”为PLP(physical layer packet),这些序列用于同步PCIE链路,并进行链路管理。注意,PCIE设备发送PLP和发送TLP的过程有所不同,后续文章会详细介绍。文章来源地址https://www.toymoban.com/news/detail-496781.html

到了这里,关于【PCIE体系结构三】PCIE的硬件拓扑结构和逻辑层次结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Azure】微软 Azure 基础解析(五)核心体系结构之管理组、订阅、资源和资源组以及层次关系

    本系列博文还在更新中,收录在专栏:「Azure探秘:构建云计算世界」 专栏中。 本系列文章列表如下: 【Azure】微软 Azure 基础解析(三)描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx 【Azure】微软 Azure 基础解析(四)Azure核心体系结构组件之数据中心、区域与区域

    2024年02月07日
    浏览(56)
  • 单片机原理与应用以及C51编程技术——硬件体系结构梳理

    内部程序存储器ROM :4K的flash程序存储器; 寄存器区 :4个寄存器区,每个区有R0-R7八个工作寄存器; 8位并行输入输出端口 :P0、P1、P2和P3; 定时/计数器 :2个16位的定时/计数器 T0、T1; 串型口 :全双工串行端口(RXD:接收端、TXD发送端); 中断系统 :设有5个中断源(T

    2023年04月10日
    浏览(94)
  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器控制的预取和利用HBM扩展内存层次(七)

    硬件预取的替代方案是编译器在处理器需要数据之前插入预取指令来请求数据。 预取有两种类型: ■ 寄存器预取将值加载到寄存器中。 ■ 高速缓存预取仅将数据加载到高速缓存。 这两种类型都可以分为有错或无错的,即预取的地址是否会导致虚拟地址错误或保护错误的异

    2024年02月13日
    浏览(52)
  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器优化和硬件预取(六)

    处理器和主内存之间不断扩大的性能差距促使编译器编写者仔细检查内存层次结构,看看编译时优化是否可以提高性能。再次,研究分为指令缺失的改进和数据缺失的改进。接下来介绍的优化可以在许多现代编译器中找到。 有些程序具有嵌套循环,以非连续的顺序访问内存中

    2024年02月12日
    浏览(67)
  • OSI体系结构和TCP/IP体系结构

     在第一章( 计网第一章 )的时候,曾经提到过OSI体系结构和TCP/IP体系结构,并对它们进行了简单的对比。这篇博客在其基础上进行更深层次的理解。 计算机网络在逻辑功能上可以分为通信子网和资源子网两部分。 事实上,OSI将低三层称为通信子网,即为了联网而附加的通

    2024年02月07日
    浏览(72)
  • 【体系结构】山东大学计算机体系结构知识点清单

    涵盖所有考点,复习绝对高效,点赞+留邮箱获取pdf版本 1. 计算机系统的层次结构 语言实现的两种基本技术: 翻译:先把 N+1 级程序全部转换成 N 级程序后,再去执行新产生的 N 级程序,在执行过程中 N+1 级程序不再被访问。 解释:每当一条 N+1 级指令被译码后,就直接去执

    2024年02月11日
    浏览(65)
  • 计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构

    计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构 七层体系结构(OSI七层结构) :为了使全世界不同体系结构的计算机能够互联,国际化标准组织ISO提出开放系统互联基本参考模型,简称OSI,即所谓的7层协议体系结构。 TCP/IP四层模型 :是由实际

    2024年02月06日
    浏览(59)
  • 计算机网络——计算机网络体系结构(2/4)-分层的必要性(五层协议原理体系结构)

    目录 物理层 数据链路层 网络层 运输层 应用层 计算机网络是个非常复杂的系统。 早在最初的ARPANET设计时就提出了分层的设计理念。 \\\"分层\\\"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。 下面,我们以五层原理结构体系

    2024年02月07日
    浏览(55)
  • JVM 体系结构

    JVM: 跨平台语言 需要不同语言由自己编译器,生成符合 JSR-292 JVM规范的字节码文件,即可在 Java 虚拟机中运行  多语言混合编程: Java 平台上的多语言混合编程正成为主流,通过特定领域的语言去解决特定领域的问题是当前软件开发应对日趋复杂的项目需求的一个方向 每个应

    2024年02月03日
    浏览(47)
  • 集合体系结构

    List系列集合:添加的元素有序,可重复,有索引 Collection:是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的 set系列集合:添加的元素无序,不重复,无索引   方法名 说明 public boolean add(E e) 把给定的对象添加到当前集合中 public void clear() 清空集合中所有的

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包