Fork me on GitHub
侧边栏

随笔分类 -  PCIE

摘要:这一篇文章中,我们主要来聊一聊PCIe中的信号补偿技术(Signal Compensation)——De-emphasis。需要注意的是,Gen1&Gen2与Gen3的De-emphasis实现机制差别较大,而本文只介绍Gen1&Gen2相关内容。如需了解Gen3的相关内容,可自行查阅Gen3的PC 阅读全文
posted @ 2025-10-18 11:20 yooooooo 阅读(55) 评论(0) 推荐(0)
摘要:在 PCIe(Peripheral Component Interconnect Express)物理层中,AFE(Analog Front End)和 DFE(Decision Feedback Equalizer)都是高速串行链路中非常关键的电路模块,用来保证高速信号在经过电缆或 PCB 走线等 阅读全文
posted @ 2025-10-18 11:20 yooooooo 阅读(135) 评论(0) 推荐(0)
摘要:之所以把物理层电气部分的文章放在链路初始化与训练文章的后面,是因为这一部分涉及到一些相关的概念,如Beacon Signal、LTSSM等等。 前面已经多次提及,由于本次连载的文章主要是基于Gen2的,所以关于Gen3的相关内容只会提及,但是并不会深入的介绍,如果有兴趣的可以自行阅读Gen3的Spe 阅读全文
posted @ 2025-10-18 11:18 yooooooo 阅读(57) 评论(0) 推荐(0)
摘要:PCIe 中的 MSI(Message Signaled Interrupts) 和 MSI-X(Message Signaled Interrupts eXtended) 都是现代替代传统中断(INTx)机制的方式,用于提高中断处理效率,特别是在多核系统中。它们的主要区别如下: ✅ 1. 中断向量 阅读全文
posted @ 2025-10-11 16:00 yooooooo 阅读(114) 评论(0) 推荐(0)
摘要:这一篇文章来简单地介绍一下链路训练状态机(Link Training and Status State Machine,LTSSM),并简要地介绍各个状态的作用和实现机制。 LTSSM有11个状态(其中又有多个子状态),分别是Detect、Polling、Configuration、Recovery 阅读全文
posted @ 2025-10-08 14:33 yooooooo 阅读(338) 评论(0) 推荐(0)
摘要:前面的文章中提到过,Ordered Sets分别有以下几种:TS1 and TS2 Ordered Set (TS1OS/TS2OS)、Electrical Idle Ordered Set (EIOS)、FTS Ordered Set (FTSOS)、SKP Ordered Set (SOS)和E 阅读全文
posted @ 2025-10-08 14:25 yooooooo 阅读(75) 评论(0) 推荐(0)
摘要:PCIe总线中的链路初始化与训练(Link Initialization & Training)是一种完全由硬件实现的功能,处于PCIe体系结构中的物理层。整个过程由链路训练状态机(Link Training and Status State Machine,LTSSM)自动完成,也就说基本没有数据 阅读全文
posted @ 2025-10-08 11:24 yooooooo 阅读(136) 评论(0) 推荐(0)
摘要:这一篇文章来继续聊一聊接收端物理层逻辑子层的实现细节。回顾一下之前的那张图片: 其中的一个Lane的具体逻辑如下图所示: 其中,Rx Clock Recovery从输入的串行数据流中提取出Rx Clock。当Rx Clock稳定在Tx Clock的频率上(Rx Clock locked on to 阅读全文
posted @ 2025-10-08 11:15 yooooooo 阅读(36) 评论(0) 推荐(0)
摘要:上一篇文章中提到了Mux会对来自数据链路层的数据(TLP&DLLP)插入一些控制字符,如下图所示。当然,这些控制字符只用于物理层之间的传输,接收端的设备的物理层接收到这些数据后,会将这些控制字符去除,在往上传到其数据链路层。 当然,除了STP、SDP和END之外,还有一些其他的控制字符,如EDB(前 阅读全文
posted @ 2025-10-07 13:30 yooooooo 阅读(67) 评论(0) 推荐(0)
摘要:首先,回顾一下,之前看了很多遍的PCIe的Layer结构图: PCIe中的物理层主要完成编解码(8b/10b for Gen1&Gen2,128b/130b for Gen3 and later)、扰码与解扰码、串并转换、差分发送与接收、链路训练等功能。其中链路训练主要通过物理层包Ordered S 阅读全文
posted @ 2025-10-05 16:32 yooooooo 阅读(54) 评论(0) 推荐(0)
摘要:这一篇文章来简单地分析几个Ack/Nak机制的例子。 Example 1. Example of Ack Step1 设备A准备依次向设备B发送5个TLP,其对应的序列号分别为3,4,5,6,7; Step2 设备B成功的接收到了TLP3,并将NEXT_RCV_SEQ从3加到4,但是设备B没有立即向 阅读全文
posted @ 2025-10-05 16:17 yooooooo 阅读(50) 评论(0) 推荐(0)
摘要:REQ-CLK PCIe REQ-CLK GPIO(Request Clock GPIO) 是在某些 SoC 或平台上用于 控制 PCIe 参考时钟(REFCLK)请求/使能 的信号,通常与 CLKREQ#(Clock Request) 功能相关。它的作用主要体现在 低功耗管理 和 链路唤醒 场景。 阅读全文
posted @ 2025-09-30 11:43 yooooooo 阅读(339) 评论(0) 推荐(0)
摘要:为什么要做Equalization 电信号传输过程中,当前bit会阻碍下一个bit电压翻转,这种影响叫符号间干扰(inter‐symbol interference(ISI))。当电压变化越快这种影响会越小,反之连续的相同电压持续时间越长影响越大,当电压转换时就需要更长的时间去抵消这种影响。 所以当 阅读全文
posted @ 2025-09-02 16:49 yooooooo 阅读(308) 评论(0) 推荐(0)
摘要:前面在数据链路层入门的文章中简单地提到过Ack/Nak机制的原理和作用,接下来的两篇文章中将对Ack/Nak机制进行详细地介绍。 Ack/Nak是一种由硬件实现的,完全自动的机制,目的是保证TLP有效可靠地传输。Ack DLLP用于确认TLP被成功接收,Nak DLLP则用于表明TLP传输中遇到了错 阅读全文
posted @ 2025-07-28 10:37 yooooooo 阅读(227) 评论(0) 推荐(0)
摘要:首先说明一下,在本次连载的博文中,DLLP一般指的是由发送端的数据链路层发送,接收端的数据链路层接收的数据包,其和事务层(Transaction Layer)一般没有什么关系。本文将要介绍的DLLP指的正是这样的数据包,其一般用于Ack/Nak机制、功耗管理、Flow Control(流量控制)和一 阅读全文
posted @ 2025-07-24 16:58 yooooooo 阅读(173) 评论(0) 推荐(0)
摘要:Secondary Bus Reset Secondary Bus Reset是PCI Express (PCIe) 总线协议中的一种重置机制,用于恢复处于部分失效状态的PCIe设备和子系统。 在PCIe总线中,每个Root Complex(根复杂)都有一个Primary Bus,而每个Second 阅读全文
posted @ 2025-07-22 17:07 yooooooo 阅读(195) 评论(0) 推荐(0)
摘要:当然可以,下面是对 PCIe 电源管理状态 L0、L0s、L1、L1SS、L2、L3 的详细说明,包括它们的特性、功耗、延迟和典型应用场景: 🔹 L0 – Active State 说明:链路处于完全激活状态,数据可以自由传输。 功耗:最高。 恢复延迟:无。 典型场景:设备正在进行数据传输。 🔹 阅读全文
posted @ 2025-07-09 18:33 yooooooo 阅读(489) 评论(0) 推荐(0)
摘要:定义 PCIe 设备发出的请求中有些请求需要 Completer 反馈 Completion,此时 Requester 会等待 Completion 再进行下一步操作。在某些异常情况下,比如配置不当、系统故障等,Requeser 无法收到或收齐 Completion。 为了不影响进一步使用,需要一种 阅读全文
posted @ 2025-06-30 18:08 yooooooo 阅读(620) 评论(0) 推荐(0)
摘要:1.FTS (Fast Training Sequence) 作用:快速训练序列(FTS)在从L0s过渡到L0时用于位和符号锁定。Receiver接收到FTS会退出电气空闲状态,并且完成bit and Symbol lock。 At 2.5 GT/s and 5.0 GT/s data rates: 阅读全文
posted @ 2025-06-30 15:49 yooooooo 阅读(189) 评论(0) 推荐(0)
摘要:iATU(Internal Address Translation Unit) 是一种用于 PCIe(Peripheral Component Interconnect Express)设备的硬件模块,主要用于实现 地址转换 功能。 它的作用是将设备访问的 内存地址 从 设备视角 转换为 主机视角 阅读全文
posted @ 2025-06-11 11:47 yooooooo 阅读(387) 评论(0) 推荐(0)