![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PCIe
文章平均质量分 79
古猫先生
长期混迹存储领域,先后供职于知名半导体外企和互联网存储研发,欢迎留言or私信交流~
展开
-
属于PCIe 7.0的那道光来了~
通过克服传统铜缆在高速率下的信号衰减和干扰问题,光学连接为PCIe 7.0的广泛应用打开了新的大门,尤其是在对数据传输速度和延迟有极高要求的高性能计算(HPC)、人工智能(AI)、数据中心等领域。意味着即使在极端条件下,该系统也能提供足够的冗余来确保数据的准确无误传输,为后续的RS纠错编码留下了充足的空间。高性能控制器和PHY:设计专用的高性能PCIe控制器和物理层芯片(PHY),能够支持最新的PCIe标准,并优化其与光学接口的对接,保证数据在经过光传输后的完整性和准确性。随着技术的不断成熟和应用的深化,原创 2024-06-18 22:31:34 · 1602 阅读 · 0 评论 -
PCIe下一代线缆标准CopprLink发布
除了CopprLink线缆,PCI-SIG的线缆工作组还在基于已广泛使用的SNIA SFF-8614连接器(通常用于存储应用,被称为“MiniSAS-HD”)开发新的外部线缆规范。CopprLink电缆旨在与相同的连接器外形尺寸一同进化,为未来的PCIe技术世代扩展规模,并满足新兴应用的需求。CopprLink线缆(内部和外部)专为PCIe 5.0和6.0技术设计,分别提供32.0 GT/s和64.0 GT/s的信号传输速度,采用SNIA维护的行业标准形式因子连接器,便于快速采纳、缩短上市时间并降低成本。原创 2024-05-08 22:19:07 · 1177 阅读 · 0 评论 -
CXL与PCIe世界的尽头|你相信光吗?
尽管面临诸多技术挑战,但随着科研创新、产业协作与标准化进程的推进,光学互连有望破解现有电子互连的瓶颈,开启数据中心互联技术的新篇章。:由于光纤不受电磁干扰影响,可以实现千米级别的无损传输,大大拓展了服务器集群间的连接范围,使得数据中心内的设备可以更加灵活地分布在更大空间内,同时不影响数据通信性能。:设计专用的高性能PCIe控制器和物理层芯片(PHY),能够支持最新的PCIe标准,并优化其与光学接口的对接,保证数据在经过光传输后的完整性和准确性。原创 2024-04-16 08:45:07 · 1858 阅读 · 0 评论 -
PCIe 7.0|不要太卷,劝你先躺平
CXL 1.1(PCIe 5.0)支持直接内存扩展器连接。这三种CXL设备类型,目前来看,Type3内存扩展方案的发展最迅速,也是带给数据中心和内存厂商最大的机遇。根据Yole机构分析数据显示,CXL在2024年开始爬坡,在2025年将会大规模上量,也就是代表着CXL的时代从2025年开始正式到来。:继续追求低延迟性能,并强化系统的鲁棒性和数据传输的准确性,以适应对实时性和数据完整性要求极高的应用场景。:在提高性能的同时注重节能,致力于降低每比特数据传输的能耗,符合现代数据中心对绿色计算和能源效益的追求。原创 2024-04-06 09:14:45 · 1180 阅读 · 0 评论 -
PCIe P2P DMA全景解读
例如,由于主机CPU访问CMB的效率低于DDR内存,且CMB的大小有限,因此对于需要频繁、大量数据交换的应用场景,CMB可能无法提供最佳的性能。Host与存储设备数据移动优化的技术中,控制器内存缓冲区(Controller Memory Buffer,CMB)是一个重要的概念。当CPU需要访问存储设备的数据时,它可以通过内存读写事务层封装(MRd或MRw)直接访问CMB,而不需要将整个数据块传输到主机内存。随着时间的推移,随着硬件技术的进步以及软件栈的支持,如。P2P DMA技术挑战。原创 2024-02-23 22:56:28 · 2359 阅读 · 2 评论 -
P2P DMA发展全景分析解读
P2P DMA的概念早在NVMe SSD和RDMA技术发展的初期就已出现。随着时间的推移,随着硬件技术的进步以及软件栈的支持,如Linux内核从6.2版本开始提供用户空间对P2PDMA的支持,该功能逐渐成熟并应用在更多领域,例如NVIDIA GPUDirect Storage利用P2PDMA实现了GPU与NVMe命名空间之间的直接数据复制。综上所述,尽管P2P DMA技术面临一定的挑战,但其带来的性能提升潜力使其在未来有广阔的应用前景,尤其是在高性能计算、云计算和新一代存储解决方案等领域。原创 2024-01-20 21:29:09 · 966 阅读 · 0 评论 -
P2P DMA并不是所有场景都会有性能提升
在这种流式工作负载场景下,使用p2p似乎是一个可行的选择。例如,当两个高速设备(如GPU与NVMe SSD)需要频繁进行大量数据交换时,通过P2P DMA,数据可以直接在设备间传输,无需经过CPU中转,这样可以减少数据在系统内存中的多次复制以及CPU上下文切换带来的开销,从而提高整体的数据传输效率和系统的吞吐量。对于复杂工作负载,当文件内容被缓存在页缓存中时(这在多个合作应用程序构成的复杂软件系统中经常发生),p2p仅在访问持久存储中的文件时效率较高,但其性能明显低于CPU中转I/O。原创 2024-01-20 21:02:04 · 1137 阅读 · 0 评论 -
GPU与SSD间的P2P DMA访问机制
例如,在将数据从SSD复制到GPU的过程中,CPU会先要求SSD将数据传入其本地缓冲区,再命令GPU将这些数据复制到自身的GPU内存缓冲区。映射GPU内存到进程地址空间:GPU通过在其PCIe总线上的设备BAR上暴露部分GPU内存,使其可供CPU访问。在该系统中, PCIe BAR(Base Address Register): PCIe设备通过BAR将其控制寄存器和/或内部内存块暴露在总线上,以便由其他PCIe设备访问。为了实现p2p DMA,GPU会在BAR上暴露一部分本地内存段。原创 2024-01-20 20:54:14 · 1265 阅读 · 1 评论 -
PCIe 6.0生态业内进展分析总结-2
通过这种创新解决方案,设计人员可以在真实的实时环境中对新一代PCIe 6.0和CXL接口进行全面而深入的协议验证和调试,从而加速相关产品的开发进程并确保其与标准兼容性和互操作性。在2023年初,Intel发布了第四代至强可扩展处理器(代号Sapphire Rapids),该系列CPU针对云计算、高性能计算、人工智能和数据分析等领域进行了优化,支持PCIe 5.0以及DDR5内存,并首次引入了对CXL 1.1的支持。提供PCIe 6.0技术和CXL 1.1 / 2.0协议可视化与分析工具,便于调试。原创 2024-01-05 23:01:16 · 1331 阅读 · 0 评论 -
PCIe 6.0生态业内进展分析总结
PCIe 6.0控制器IP:这是实现PCIe 6.0功能的核心部分,负责处理数据包的发送和接收,管理事务层和数据链路层的功能,并确保与PCIe规范兼容的数据传输。PHY物理层IP:作为连接控制器和其他系统组件的关键硬件模块,PHY物理层IP采用了先进的信号处理技术来实现高效的数据传输,同时通过PAM4调制方式应对高频率下的信号衰减问题,从而实现在更高速率下保持信号质量和稳定性。性能方面,该控制器IP在基准测试中达到了理论性能的95%,采用了超标量设计,确保在所有数据速率下都能实现高吞吐量和低延迟。原创 2024-01-05 23:00:24 · 1750 阅读 · 0 评论 -
浅析PCIe 6.0功能更新与实现的挑战-5
简化固件/软件设计:对于系统固件和操作系统来说,无需再为每种可能的设备类型和场景预设复杂的超时逻辑,而是可以根据设备提供的DRS信息做出决策,简化了驱动程序和系统软件的设计与实现。Device Readiness Status(DRS)是一个重要的功能升级,它增强了PCIe总线对设备状态管理的能力,降低了系统设计的复杂度,并提升了整个平台的性能和可靠性。动态适应性:不同设备可能具有不同的初始化时间和复杂度,DRS允许系统根据每个设备的实际需求调整等待时间,避免了过早或过晚的操作尝试。原创 2024-01-02 21:52:20 · 1535 阅读 · 0 评论 -
浅析PCIe 6.0功能更新与实现的挑战-4
在L0p状态下,链路的部分通道(lanes)处于休眠状态,而其他通道则保持活动运行。对于FLIT模式,支持L0p功能是可选的,由于L0p依赖于新的机制,所以在非FLIT模式下不支持此功能。相比于传统的电源管理策略,如L0s状态,L0p能够在FLIT模式下提供更为精细化和灵活的电源管理能力,尤其适用于那些具有动态带宽要求或存在间歇性通信需求的场景。此外,L0p能够通过自动化的硬件控制机制实现动态切换,无需系统软件干预,且支持重定时器设备,使得整个链路架构在节能的同时,也能保证链接稳定性与性能表现。原创 2024-01-02 21:51:43 · 671 阅读 · 0 评论 -
浅析PCIe 6.0功能更新与实现的挑战-3
当系统软件启用其他VC时,这些被启用的VC也会各自初始化带有专用FC信用池和每个VC对应的共享FC信用池。额外VC的共享FC信用将进一步扩展所有VC可用的共享FC池,并且如果之前已分配了适当的共享FC信用,则允许新VC的共享FC信用池为零。共享流控制信用机制使得可以从一个共享的流控制信用池中分配资源给多个VCs,这样,在基础必需VC0之外增加额外的VC时,可以降低增量成本。VC0首先初始化,并设置共享信用池的初始值。在仅支持单个VC的情况下,存在一个单一的“共享”信用池,而VC0将被初始化为零专用信用。原创 2024-01-02 21:51:03 · 570 阅读 · 0 评论 -
浅析PCIe 6.0功能更新与实现的挑战-2
这种显著的增加意味着系统能够更好地应对大规模并发任务,增强并行处理能力和整体带宽利用率,即使在链路延迟较高的情况下也能保持高性能和低延迟的数据传输。然而,在更高性能的应用场景,如数据中心、AI计算、高速存储等,这样的标签数量可能不足以满足日益增长的并发事务需求,尤其是在长RTT(Round-Trip Time)环境下,系统的效率可能会因为标签不足而降低。随着数据速率和带宽需求的增长,尤其是在PCIe 6.0标准下,对多路复用、低延迟以及高效的数据包处理能力的要求也随之提高。原创 2024-01-02 21:50:17 · 642 阅读 · 0 评论 -
浅析PCIe 6.0功能更新与实现的挑战-1
新规范还规定,在FLIT的32个双字(DW)边界内,每个FC/VC最多只能包含4个非NOP TLP,这是PCIe 6.0新增的规定。这样的设计是为了防止突发错误,特别是当错误发生在小于3个字节的情况下,能够有效地进行纠正,从而提升整个系统的稳定性和可靠性。在PCIe 6.0中,由于采用了PAM4信号调制技术,PAM4(脉冲幅度调制,四级)是一种信号调制技术,它在同一符号时间内通过四个不同的电压电平来传递两位数据。在之前的PCIe版本中,事务数据以可变长度的形式存在,称为TLP(事务层包)。原创 2024-01-02 21:49:37 · 1117 阅读 · 0 评论 -
PCIe surprise down异常与DPC功能分析-part2
Surprise Down代表了一个可能导致系统不稳定或数据损坏的错误事件,而DPC则是一种应对这种错误的快速隔离和防止传播的手段。通过这两者的结合,系统能够更有效地管理PCIe设备的错误情况,提高系统的可靠性和数据完整性。在这个过程中,PCIe开关会隔离受影响的下游端口,阻止任何进一步的数据传输和请求通过该端口,从而防止错误传播到其他设备和链路。错误隔离:如果决定触发DPC,那么系统会命令PCIe开关隔离发生Surprise Down的设备所在的下游端口。原创 2023-12-24 10:00:07 · 1510 阅读 · 0 评论 -
PCIe surprise down异常与DPC功能分析-part1
然而,这些机制主要集中在单个设备或链路上的错误处理,对于跨多个设备或端口的错误传播控制相对较弱。在PCIe系统中,多个设备通过PCIe链路连接在一起,形成一个复杂的互连网络。由于PCIe是一种高速、低延迟的总线标准,任何设备故障或错误都可能迅速传播到整个系统,导致数据损坏、系统崩溃等问题。在"Surprise Down"情况下,LTSSM的状态可能从正常操作状态(如"L0"或"L0s")转换到错误状态,如"Hot Reset"、"Electrical Idle"或"Link Down"状态。原创 2023-12-24 09:59:34 · 1217 阅读 · 0 评论 -
PCIe 5.0相对于PCIe 4.0的优势差异对比
总之,PCIe 5.0通过提供更高的数据传输速率、更大的带宽、更好的电源效率、增强的错误检测和纠正能力、更广泛的适用性和未来兼容性,以及推动生态系统发展,为现代高性能计算和数据密集型应用提供了理想的解决方案。然而,实现这些优势需要硬件和软件的全面升级和优化,包括处理器、芯片组、主板、设备驱动程序和操作系统等各个环节的支持。随着技术的不断进步和市场需求的增长,PCIe 5.0有望成为下一代计算和数据处理基础设施的关键组成部分。原创 2023-12-23 22:20:51 · 3784 阅读 · 0 评论 -
CXL RAS功能简介
健康监测和管理:CXL可能提供设备健康状态的实时监测和管理功能,包括温度、电压、频率等参数的监控,以及预测性故障分析等。热插拔和热替换:CXL设备可能支持热插拔和热替换功能,允许在系统运行时添加、移除或更换设备,而不影响系统的正常运行。故障隔离和恢复:CXL可能会有机制来隔离故障设备或部分,以防止故障扩散,并尽可能地在发生故障时保持系统的运行和服务。备份和冗余:为了提高系统的可用性,CXL可能支持设备的备份和冗余配置,例如使用多个物理设备来提供单点故障保护。原创 2023-12-17 18:47:01 · 678 阅读 · 0 评论 -
PCIe在狂飙,SAS存储之路还有多远?
根据了解,目前市场上没有24G SAS磁盘驱动器,只有少数由企业存储供应商生产的24G SAS SSD产品,因为NVMe互连已经占据了SSD接口领域,而以10,000rpm速度运行的高速度磁盘驱动器正被SSD取代。这是因为SAS具有大量的存量基础,而且随着时间的推移,NVMe可能会侵蚀SAS的硬盘驱动器主导地位,但这将需要数年时间。但是,总的来说,存储驱动器制造商对24G SAS的采用一直很缓慢。当前的SAS标准,即SAS-3或12G SAS,定义了12Gbps的接口带宽,与PCIe 3相匹配。原创 2023-12-12 22:26:28 · 1753 阅读 · 0 评论 -
pcie 6.0/7.0相对pcie 5.0的变化有哪些?
此外,还引入了新的接口,如LTSSM新增加了L0p低功耗状态,允许部分 Lane Electric Idle、部分 Lane Active,以进一步降低功耗并提高能效。PCIe 6.0可能会与新的CXL规范融合,提供更高效的解决方案,以支持更高端的服务器和工作站应用。pcie协议5.0还没完全普及,pcie 6.0 spec已经发布,pcie 7.0 spec也在路上了,这个世界都在狂奔。言归正传,为了追求高性能,PCIE SSD是数据中心的高性能标配,PCIE SSD在数据中心的占比还在继续攀升。原创 2023-09-01 21:33:24 · 1527 阅读 · 0 评论 -
PCIe系列专题之七:PCIe热插拔
之后,Hot-Plug Service会调用Hot-Plug System Driver去读取slot的状态信息并且侦测到Attention按钮的状态;为了放置意外的发生,PCIe Spec设计了一种"No Surprise"热插拔机制,即,当用户要插拔PCIe设备时,必须先通知系统软件做好准备,然后通过指示灯告知用户热插拔的状态。: 按照Hot-plug System Driver的指示,Hot Plug Controller向需要插拔PCIe设备的插槽(Slot)传送PERST#信号。原创 2022-10-01 16:09:02 · 6774 阅读 · 0 评论 -
CIe系列专题之六:PCIe系统复位方式
前面讲到的传统复位方式(Cold Reset, Warm Reset, Hot Reset)均属于全局复位方式,而FLR的优势则是对局部复位。: 在VCC不断电的情况下,系统可以触发Warm Reset。比如,电源状态的变化就会触发Warm Reset. 不过,PCIe Spec并没有定义触发Warm Reset的具体方式,这部分可以有系统设计人员自行决定。另外,在PCIe总线中,通过发送TS1序列,并且在TS1序列中设置Hot Reset bit来对下游设备进行Hot Reset(如下图红色框).原创 2022-10-01 16:07:37 · 5277 阅读 · 0 评论 -
PCIe系列专题之五:PCIe总线电源管理
当PCIe设备发送端决定进入L0s时,发送端会停止数据输出,并给接收端发送Ordered set "EIOS",之后,发送端就进入Electrical Idle状态。4. 在前面的准备工作完成之后,此时就可以放心的给上游设备发送进入L1状态的请求咯。比如,进行DMA操作时,发送端一直处于工作状态L0,而接收端在长时间内无事可做,将自主进入L0s状态,此时不需要发送端同步进入L0s。因为发送TS1序列之后,设备退出Electrical Idle状态,也即退出L1,进入Recovery状态,进而回到L0状态。原创 2022-10-01 16:06:16 · 6193 阅读 · 0 评论 -
浅析Relaxed Ordering对PCIe系统稳定性的影响
介绍Relaxed Ordering对PCIe系统稳定性的影响原创 2022-09-29 00:04:09 · 3338 阅读 · 0 评论 -
PCIe系列专题之四:4.1 物理层数据流解析
由于Gen1&Gen2 (8b/10b编码)与Gen3 (128b/130b编码)在物理层中的数据编码原理不同,物理层对Gen1&Gen2 与Gen3定义的控制字符也不同。所以,接下来我们对Gen1&Gen2和Gen3的数据流分开解析。在Gen1&Gen2中,以COM控制字符开头,所有的Lane必须同时发送Ordered Sets。在Gen3中,数据编码舍弃了原来8b/10b编码,而采用更加有效的128b/130b编码。而在Gen3采用128b/130b编码时,引入了一个新的概念: "块"(Block);原创 2022-09-26 22:54:03 · 1727 阅读 · 6 评论 -
PCIe系列专题之四:4.0 物理层结构解析
逻辑层主要负责与数据链路层之间的数据交互,由发送逻辑Tx和接收逻辑Rx组成。由于PCIe总线可能包含多个Lane, Byte Stripping组件将DLLP/TLP数据报文按照数据依次分发到不同的Lane。3. Byte Un-Stripping组件将来自各个Lane的数据进行合并,检查Start和End标识后送入Rx Buffer, 最后传送至接收端数据链路层。DLLP和TLP从数据链路层到达物理层后,物理层会在其两端分别加上Start和End标识,主要是方便接收端找到DLLP和TLP的边界。原创 2022-09-26 22:53:09 · 1489 阅读 · 1 评论 -
PCIe系列专题之三:3.2 数据链路层Ack/Nak机制解析
(7) Device A端接收到Sequence ID=0对应的Ack DLLP之后,重新发送TLP 1和TLP2,并且将Sequence ID=0之前的TLPs(4094,4095,0)全部从Retry Buffer里面清除。(3) TLP 4095第二个被成功接收,返回Ack DLLP给Device A, 同时Next_RCV_SEQ加1(也就是=0,因为4095+1超过了Next_RCV_SEQ的最大取值4095,从0开始记)。这个情况下,正确接收TLP,并将TLP传送至上次事务层。原创 2022-09-26 22:52:03 · 2414 阅读 · 2 评论 -
PCIe系列专题之三:3.1 数据链路层DLLP结构及类型
之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。上篇文章数据链路层概述中提到"DLLP不同于TLP,是产生与数据链路层,中止与数据链路层。需要指出的是,DLLP里面的CRC为16位,与TLP的后缀LCRC(32位) 不同,不要混淆咯~附录: DLLP详细列表。原创 2022-09-26 22:50:33 · 1006 阅读 · 0 评论 -
PCIe系列专题之三:3.0 数据链路层概述
来自事务层的TLPs,再加上前缀Sequence和后缀LCRC之后,会首先暂存在数据链路层的TLP Retry Buffer,然后再发送至接收端。之前的文章中,我们提到"在PCIe体系结构中,数据报文首先在设备的核心层(Device Core)中产生,然后再经过该设备的事务层(Transaction Layer)、数据链。从上图中,我们也可以明显的看到,Data Link Layer在PCIe总线中处于承上启下的作用,保证来自事务层的TLPs在PCIe总线中正常的传递。1. PCIe技术概述;原创 2022-09-26 22:49:46 · 1788 阅读 · 0 评论 -
浅析PCIe MPS对系统性能和稳定性的影响
在MPS在PCIe整体性能中,有至关重要的作用。随着MPS大小的增加,PCIe传输效率也在不断提升。同时,MPS对PCIe系统稳定性也起着决定性的作用。原创 2022-09-26 21:45:53 · 2627 阅读 · 0 评论 -
PCIe系列专题之二:2.8 事务排序机制
与其他协议一样,当同一个通信等级(Traffic Class, TC)的多个事务(Transactions)同时通过同一个通道时,PCIe对这些事务设置了一些排序(Transaction Ordering)规则。原创 2022-09-17 14:51:49 · 1535 阅读 · 0 评论 -
PCIe系列专题之二:2.7 Flow Control的实现过程
前面针对Flow control的基本原理与组成进行了解析了,那么如何实现flow control这个功能呢?原创 2022-09-17 14:50:58 · 1849 阅读 · 0 评论 -
PCIe系列专题之二:2.6 Flow Control初始化
在PCIe总线中,任何事务传输之前,flow control必须要初始化。如果flow control初始化未成功,那么任何TLPs都无法发送出去。原创 2022-09-17 14:49:58 · 1741 阅读 · 0 评论 -
PCIe系列专题之二:2.5 Flow Control缓存架构及信用积分
我们提到PCIe总线的flow control(流量控制)是由事务层和数据链路层协调完成。发送端先以TLP的方式把数据发送至数据链路层,达到数据缓存之后会被分解为两个部分:Header和Data。原创 2022-09-17 14:48:44 · 1085 阅读 · 0 评论 -
PCIe系列专题之二:2.4 Flow Control机制概述
在PCIe协议中,如果要发送一个TLP,就必须要保证接收端有足够的缓存(Buffer)来接收。为了实现这一功能,接收端会随时回报可用的缓存空间。原创 2022-09-17 14:47:33 · 1295 阅读 · 0 评论 -
PCIe系列专题之二:2.3 TLP结构解析
经过之前文章的介绍,我们可以知道,PCIe总线在事务层中利用TLP (Transaction Layer Packet) 进行数据传输。那么,TLP具体长什么样子呢?又有哪些关键内容?这个就是我们本文的重点。原创 2022-09-17 14:46:20 · 1667 阅读 · 2 评论 -
PCIe系列专题之二:2.2 TLP事务处理方式解析
看过前面TLP的前世今生精彩大剧之后,想必大家应该都知道TLP(Transaction Layer Packet)在事务层的角色。如果不知道,就默默翻一下前面的文章哈~原创 2022-09-17 14:44:50 · 1355 阅读 · 0 评论 -
PCIe系列专题之二:2.1 TLP的前世今生
PCIe总线使用的数据报文首先在事务层中形成,这个数据报文也被称之为事务层数据报文,即TLP(Transaction Layer Packet),TLP在经过数据链路层时被加上Sequence Number前缀和CRC后缀,然后发向物理层。原创 2022-09-17 14:43:50 · 1370 阅读 · 0 评论 -
PCIe系列专题之二:2.0 Transaction layer事务层概述
本篇文章主要是对PCIe的事务层作一个大致的表述,后续章节会针对事务层主要的功能TLP, Flow Control, Transaction Ordering等内容进行详细的介绍原创 2022-09-17 14:42:44 · 1355 阅读 · 0 评论