《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(7)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(6)

4.1 PCIe总线的基础知识

与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为数据发送端和数据接收端。PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。PCIe总线使用的层次结构与网络协议栈较为类似。

4.1.4 PCIe链路的扩展

PCIe链路使用端到端的数据传送方式。在一条PCIe链路中,这两个端口是完全对等的,分别连接发送与接收设备,而且一个PCIe链路的一端只能连接一个发送设备或者接收设备。因此PCIe链路必须使用Switch扩展PCIe链路后,才能连接多个设备。使用Switch进行链路扩展的实例如图4-5所示:

在PCIe总线中,Switch(此处的Switch是指传统的Switch,而非MR-IOV规范中定义的Switch)是一个特殊的设备,该设备由1个上游端口2~n个下游端口组成。PCIe总线规定,在一个Switch中可以与RC直接或者间接相连(所谓间接相连,是指通过其它Switch再与RC相连)的端口为上游端口。在PCIe总线中,RC的位置一般在上方,这也是上游端口这个称呼的由来。在Switch中,除了上游端口外,其它所有端口都被称为下游端口下游端口一般与EP相连,或者连接下一级Switch继续扩展PCIe链路。其中与上游端口相连的PCIe链路被称为上游链路与下游端口相连的PCIe链路被称为下游链路

上游链路和下游链路是一个相对的概念。如上图所示,Switch与EP2连接的PCIe链路,对于EP2而言是上游链路,而对Switch而言是下游链路。

上图所示的Switch中含有3个端口,其中一个是上游端口(Upstream Port),而其它两个为下游端口(Downstream Port)。其中上游端口与RC或者其它Switch的下游端口相连,而下游端口与EP或者其它Switch的上游端口相连

在Switch中,还有两个与端口相关的概念,分别是Egress端口Ingress端口这两个端口与通过Switch的数据流向有关。其中Egress端口指发送端口,即数据离开Switch使用的端口Ingress端口指接收端口,即数据进入Switch使用的端口

Egress端口和Ingress端口与上下游端口没有对应关系。在Switch中,上下游端口可以作为Egress端口,也可以作为Ingress端口。如图4-5所示,RC对EP3的内部寄存器进行写操作时,Switch的上游端口为Ingress端口,而下游端口为Egress端口;当EP3对主存储器进行DMA写操作时,该Switch的上游端口为Egress端口,而下游端口为Ingress端口。

PCIe总线还规定了一种特殊的Switch连接方式,即Crosslink连接模式支持这种模式的Switch,其上游端口可以与其它Switch的上游端口连接,其下游端口可以与其它Switch的下游端口连接

PCIe总线提供CrossLink连接模式的主要目的是为了解决不同处理器系统之间的互连,如图4-6所示:

使用CrossLink连接模式时,虽然从物理结构上看,一个Switch的上/下游端口与另一个Switch的上/下游端口直接相连,但是这个PCIe链路经过训练后,仍然是一个端口作为上游端口,而另一个作为下游端口

处理器系统1与处理器系统2间的数据交换可以通过Crosslink进行。当处理器系统1(2)访问的PCI总线域的地址空间或者Requester ID不在处理器系统1(2)内时,这些数据将被Crosslink端口接收,并传递到对端处理器系统中。Crosslink对端接口的P2P桥将接收来自另一个处理器域的数据请求,并将其转换为本处理器域的数据请求

使用Crosslink方式连接两个拓扑结构完全相同的处理器系统时,仍然有不足之处。假设图4-6中的处理器系统1和2的RC使用的ID号都为0,而主存储器都是从0x00000000开始编址。当处理器1读取EP2的某段PCI总线空间时,EP2将使用ID路由方式,将完成报文传送给ID号为0的PCI设备,此时是处理器2的RC而不是处理器1的RC收到EP2的数据。因为处理器1和2的RC使用的ID号都为0,EP2不能区分这两个RC。

综上所述,使用Crosslink方式并不能完全解决两个处理器系统的互连问题,因此在有些Switch中支持非透明桥结构。这种结构与PCI总线非透明桥的实现机制类似,本章对此不做进一步说明。

使用非透明桥仅解决了两个处理器间数据通路问题,但是不便于NUMA结构对外部设备的统一管理。PCIe总线对此问题的最终解决方法是使用MR-IOV技术该技术要求Switch具有多个上游端口分别与不同的RC互连。目前PLX公司已经可以提供具有多个上游端口的Switch,但是尚未实现MR-IOV技术涉及的一些与虚拟化相关的技术。

即便MR-IOV技术可以合理解决多个处理器间的数据访问和对PCIe设备的配置管理,使用PCIe总线进行两个或者多个处理器系统间的数据传递仍然是一个不小问题。因为PCIe总线的传送延时仍然是制约其在大规模处理器系统互连中应用的重要因素。

更多内容请看下回。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/453927.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端小案例——动态导航栏文字(HTML + CSS, 附源码)

一、前言 实现功能: 这案例是一个具有动态效果的导航栏。导航栏的样式设置了一个灰色的背景,并使用flex布局在水平方向上平均分配了四个选项。每个选项都是一个li元素,包含一个文本和一个横向的下划线。 当鼠标悬停在选项上时,选项的文本颜色…

19113133262(微信同号)【主题广范|见刊快】2024年新材料与应用化学国际学术会议(ICNMAC 2024)

【主题广范|见刊快】2024年新材料与应用化学国际学术会议(ICNMAC 2024) 2024 International Conference New Materials and Applied Chemistry(ICNMAC 2024) 一、【会议简介】 会议背景:随着科技的飞速发展,新材料与应用化学领域的研究成果日益丰富。为…

Golang专家级教程:crypto/rand 库的使用技巧与最佳实践

Golang专家级教程:crypto/rand 库的使用技巧与最佳实践 引言:为什么选择 crypto/randcrypto/rand 基本概念与原理1. 加密安全的伪随机数生成器(CSPRNG)2. 操作系统的随机数源3. 应用场景 如何使用 crypto/rand:基础示例…

canvas路径剪裁clip(图文示例)

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

InTouch WinCC多数据轴趋势曲线开发

InTouch新型报表,纯代码实现【免插件】 InTouch/WinCC通用报表控件CommReport V1.0.0发布 【InTouch】历史报警/历史事件插件-报表统计、分析、导出、打印(图文讲解)V2.1.6更新版下载 InTouch/WinCC/iFix/组态王 belt带图 InTouch 流水效…

精雕细琢的文档体验:Spring Boot 与 Knife4j 完美交汇

欢迎来到我的博客,代码的世界里,每一行都是一个故事 精雕细琢的文档体验:Spring Boot 与 Knife4j 完美交汇 前言Knife4j 与 Swagger 的区别1. 特性与优劣势对比:Knife4j:Swagger: 2. 选择 Knife4j 的理由&a…

JVM-双亲委派机制

双亲委派机制定义 双亲委派机制指的是:当一个类加载器接收到加载类的任务时,会自底向上查找是否加载过, 再由顶向下进行加载。 详细流程 每个类加载器都有一个父类加载器。父类加载器的关系如下,启动类加载器没有父类加载器&am…

CSS 闪电按钮效果

<template><view class="const"><div class="voltage-button"><button>闪电按钮</button><svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox=&q…

数据挖掘实战-基于决策树算法构建北京市空气质量预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

PbootCMS采集插件使用教程

这篇Pboot采集教程教你使用PbootCMS采集插件&#xff0c;自动批量采集网页文章数据&#xff0c;并发布到PbootCMS系统&#xff0c;快速丰富网站的内容。 1. 下载并安装PbootCMS采集插件 1-1&#xff09;PbootCMS采集插件免费下载&#xff1a;Pboot采集插件-PbootCMS发布模块下…

数据可视化Tableau

目录 一.第一次实验课内容 1、熟悉Tableau Desktop的工作环境。 2、熟悉数据导入、维度和度量的区分以及不同数据字段类型的标识符。 3、熟悉工作表的基本操作&#xff0c;主要包括行列功能区&#xff0c;标记卡&#xff0c;筛选器&#xff0c;智能推荐的使用。 4、作业--…

深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之行存(一)

在当今的大数据时代&#xff0c;高效的数据检索和分析能力已成为许多应用程序的核心需求。Elasticsearch&#xff0c;作为一款强大的分布式搜索和分析引擎&#xff0c;正是为了满足这些需求而诞生的。它之所以能够在海量数据中实现毫秒级的搜索响应&#xff0c;以及灵活的数据分…