深入了解 PCIe 6.0 的演变和优化

2024-05-11 17:12

本文主要是介绍深入了解 PCIe 6.0 的演变和优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PCI-Express是继ISA和PCI总线之后的第三代I/O总线,即3GIO。由Intel在2001年的IDF上提出,后来PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。它的主要优势就是数据传输速率高,另外还有抗干扰能力强,传输距离远,功耗低等优点。

注:第一代总线一般指ISA、EISA、VESA和Micro Platforms。

第二代总线一般指PCI、AGP和PCI-X。

——————————————————      

PCIe protocol (Peripheral Component Interconnect Express) 于 2003 年推出第一代产品,在串行计算机扩展总线中允许每通道高达 2.5 GT/s,这是行业的一项巨大突破。此后,该协议经过多次发展,与上一代协议相比,其传输速率始终翻倍,并在需要时带来新功能和优化。

最新版本于 2022 年发布,其中引入了 PCIe 6.0,每信道速度高达 64.0 GT/s。另外,PCIe7.0也在路上,单信道速度达到了惊人的128GT/s.

2023 年在圣何塞举行的 PCI-SIG 开发者大会上宣布的那样,PCIe 6.0再次将速度提高了一倍。考虑到 20 年的行业使用和经验,这些变化考虑了对现有规则的许多必要优化。引入了新的概念和技术,如1b/1b编码、PAM4调制和Flit Mode操作。

一、了解 PCIe 6.0 优化

PCIe 6.0 规范中所有功能的更改都是考虑到它们需要优化以跟上更高的吞吐率。因此,遵循了以下准则:

减少损失: 通过避免不必要的编码;    

做出假设:基于既定模式;

避免传输不必要的信息:这可以由另一方推断出来;

避免重新配置:如果之前已经配置过。

1b/1b 编码和减少丢失

PCIe 6.0 中引入的新编码是通过避免不必要的编码来减少损耗的最佳例子。之前的协议中,PCIe 3代之后通过128b/130b传输,或更早之前1代2代的速度运行时使用 8b/10b 编码,存在更大的损耗具体也就是20%损耗。其中,128b/130b的编码,这意味着每 128 位数据需要 2 位额外的数据才能被另一端正确解码。这导致了串行链路的效率低下,其中仅由于编码而在位级中损失了 1.54% 的带宽。

726c2e574825d582138ce70a9f4d9a91.png

最新的6.0中,1B/1B通过保证传输的每个比特都可以被另一方用作实际信息来解决这个问题。这是通过在预期的数据类型的每一端实现内部计数器来完成的。只要设计经过正确验证以遵守这些计数器,就可以保证它们能够进行通信,而无需在链接中发送任何额外的不必要的信息。    

9d4c9fce127607d570740acf3f566702.png

Flit 序列号和优化信息传输

flit 序列号是 PCIe 6.0 中引入的一个新概念。它取代了事务层数据包 (TLP) 中存在的旧序列号及其确认或重放机制。

之前,序列号总是附加到每个传输的 TLP 上。尽管它增加了链路的鲁棒性,但考虑到 TLP 具有顺序序列号,这样其实存在某种程度的浪费资源。因此,知道一个 TLP 的序列号意味着知道它旁边的 TLP 的编号,依此类推。

flit 序列号协议通过实现隐式序列号来优化这一点,其中序列号由另一端推断。不仅如此,序列号也在 flit 级别,可以同时容纳多个 TLP。因此,以前用于始终传输序列号信息的空间可用于增加有用信息的带宽。

1c7c824217f1f2f62f6f8e25f0434e48.png

L0p 和优化不必要的重新配置

之前在链接后动态更改链路宽度的过程对设备来说成本很高,因为它需要经历链路训练和状态机 (LTSSM) 的所有配置状态。这意味着重新配置车道的所有细节,即使唯一需要更改的变量是正在使用的链路宽度。    

这在 PCIe 6.0 中得到了增强,引入了 L0 部分 (L0p) 功能,仅在 Flit 模式下存在。执行 L0p 序列时,可以在活动数据传输期间更改链路宽度,而无需关闭链路。这意味着通过更改链路宽度来节省功耗要有效得多,而且设备可以轻松保持较小的宽度,以防出现热节流问题。

综上所述,PCIe 6.0带来了许多变化,这些变化都是为了保证PCIe协议的所有层都能跟上更高的传输速率而进行的优化。目前正在进行的 PCIe 7.0 在所有这些更改的基础上继续提供 PCIe 支持和优化。    

这篇关于深入了解 PCIe 6.0 的演变和优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980153

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝

深入手撕链表

链表 分类概念单链表增尾插头插插入 删尾删头删删除 查完整实现带头不带头 双向链表初始化增尾插头插插入 删查完整代码 数组 分类 #mermaid-svg-qKD178fTiiaYeKjl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-