【PCIE体系结构十一】部分物理层发送接收逻辑细节

news2024/11/20 23:29:42

👉个人主页:highman110

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

参考书籍:《PCI.EXPRESS系统体系结构标准教材 Mindshare》   

目录

 物理层逻辑框图

 发送多路复用器  

 字节拆分器的位置

 通道间的相位补偿


物理层逻辑框图

  

 发送多路复用器  

  

        从上图可以看到,进入到多路复用器的内容有以下四种:

        发送数据缓冲区的TLP和DLLP:当数据链路层提供了需要发送的数据包时,多路复用器会选通数据包码流通过字节拆分逻辑。发送缓冲区内的字符是数据或“D”字符,因此选通发送缓冲区的内容时,D/K#信号被驱动为高电平。

        开始和结束字符:这些控制字符被附加到每个TLP和DLLP的开始和结束位置。这些成帧字符使接收器能够轻松地检测数据包的开始和结束。有两类开始字符,一类是开始TLP字符(STP),另一类是开始DLLP字符(SDP)。结束字符也有两类:结束好TLP(End Good TLP)或DLLP字符(END)和结束坏TLP(End BadTLP)字符(EDB)。来自数据链路层的控制信号与数据包的类型一起决定着选通哪类成帧字符。开始和结束字符是控制或“K”字符,因此当开始和结束字符分别在数据包的开始和结束位置被选通输出时,D/K#信号被驱动为低电平。

        有序集(Ordered-Set):有序集的长度是4字符序列的倍数,它以逗号(COM)控制符开始,后面跟有其他字符。在如下所述的特殊事件期间才发送有序集。

        1、链路训练期间在链路上发送定向序列1和2(TS1和TS2)有序集。基本复位、热复位或出现某些错误状况后都会出现链路定向。有关TSI和TS2有序集的详细内容后面会讲。

        2、多路复用器以固定的间隔为字节拆分逻辑选通SKIP有序集,以便在链路另一侧端口的接收器电路中进行时钟的容差补偿。

        3、一台设备要将其发送器置于电气空闲状态时,它必须通知位于链路另一端的远程接收器。为此,该设备要选通一个电气空闲有序集。

       4、 一台设备要将其链路电源状态从L0s低功耗状态改为L0工作电源状态时,它要向接收器发送快速定向序列(Fast Traning Sequence,FTS)有序集。接收器使用该有序集来重新同步其PLL与发送时钟。

        有序集以K字符开始,并且根据有序集的类型,它可能包含D或K字符。因此在有序集传输期间,可能某个时钟驱动D/K#信号为低电平,然后可能又将其驱动为高电平。

        逻辑空闲序列:链路上不发送数据包时(称为逻辑空闲链路)会选通逻辑空闲字符,而不是让链路处于悬接状态(floating state)或什么也不做。这样做就保证链路上有信号转换,从而使接收器的PLL能够与发送时钟保持时钟同步。另外,接收器能够维持比特和符号的锁定。逻辑空闲序列由发送00h字符所组成。它由D类型的字符组成,因此在多路复用器选通逻辑空闲序列时,D/K#信号为高电平。

 字节拆分器的位置

        从上面的物理层框架图可以看到,发送端字节拆分在扰码和8B/10B编码之前,这里就有疑问了,拆分之后每一条lane都有扰码和8B/10B编码单元,这不是增加了芯片面积和成本吗?为什么不先统一做完扰码和8B/10B编码再拆分到多个lane?其实这么做的目的是为了使接收端能检测到每一条lane上无效的10b字符,如果发现某条lane有错误,可以禁用该通道,并用剩下的通道来重新初始化链路。

 通道间的相位补偿

        在多条lane的情况下,每条lane上的延时常常是难以控制一致的。如果在每条通道上同时发送的数据在不同时间到达接收器的每条通道,然后被反串行化并送人字节反拆分逻辑部件,那么肯定会引起混乱,所以必须要做通道间的相位补偿。

        在链路训练时,ordered sets TS1/TS2、FTS是同时在每条lane上传输的,所以使得接收器的相位补偿逻辑可以使用这两个有序集来确定通道之间的相位偏移量。规范并未定义实现多通道对齐的方法。举个例子,接收器逻辑可以通过微调一个自动延迟电路(位于每条通道的接收器中)来补偿相位偏移,如下图所示:

        仅在最初的链路定向或链路重新定向期间(也就是恢复期间)才传输TS1和TS2有序集,在退出L0s期间才传输FTS有序集。因此只在这些时间内接收器才执行相位补偿,而不是定期进行相位补偿。 

        后面再细讲物理层控制字符和链路训练相关内容。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我麻了,那些年,为了进阿里背过的面试题......

前言 入职阿里相信是很多软件测试人的梦想,我一个阿里的朋友跟我聊天时说,他为了入职阿里背了好多面试题。我开始还不以为然,当他发给我看了之后,我麻了! 不废话,分享给你们,希望对你们有帮助&…

中小型局域网

配置思路: 1、LSW1-LSW2做链路聚合并放通所有vlan,并做VRRP实现冗余备份 #链路聚合 [Huawei]sys LSW1 [LSW1]VLAN batch 20 30 40 60 70 80 [LSW1]DHCP enable [LSW1]ospf router-id 1.1.1.1 [LSW1-ospf-1]area 0 [LSW1]int Eth-Trunk 1 …

第3章 处理机调度与死锁

3.1 作业管理 3.1.1 作业的概念及分类 1.作业的概念 作业是用户在一 次事务处理过程中要求计算机系统所做工作的集合。 从系统的角度讲,作业是一个比较广泛的概念,它由程序、数据和作业说明书组成。 2.作业的分类 依据计…

redis集群+哨兵配置实操宝典

本地安装redis 配置集群和哨兵 1、下载安装redis #wget http://download.redis.io/releases/redis-5.0.12.tar.gz #下载安装包 #yum -y install gcc #安装依赖包 #tar -zxvf redis-5.0.12.tar.gz #cd redis-5.0.12 #make 2、主备配置 我们采用一主两备的结构 主机 192.168.3.…

AITM - 多任务模型之顺序依赖性建模(美团)

文章目录 1、动机与挑战(信用卡业务广告)2、信用卡用户整体架构:3、模型结构3.1、核心部分 Modeling the Sequential Dependence among Audience Multi-step Conversions with Multi-task Learning in Targeted Display Advertising 论文发表…

【Linux的基本指令】

目录 01.ls指令02.pwd指令03.cd指令04.touch指令05.mkdir指令06.rmdir指令 && rm 指令07.*通配符08.man指令09.cp指令10.mv指令11.cat指令13.more指令14.less指令15.head指令16.tail指令17.date指令18.Cal指令19.find指令20.grep指令21.zip/unzip指令22.tar指令23.bc指…

OpenCL编程指南-5.1工作项函数-整数函数-公共函数

工作项函数 应用程序使用clEnqueueNDRangeKernel和 clEnqueueTask API将OpenCL中的数据并行和任务并行内核排队。对于一个数据并行内核(使用clEnqueueNDRangeKernel排队等待执行),应用程序会指定全局工作大小,即可以并行执行这个内核的工作项…

PSP - AlphaFold2 中单链 MSA 特征的源码简读

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/130752004 AlphaFold2 是基于深度学习的方法,可以根据氨基酸序列,预测蛋白质的三维结构。在 2020 年的 CASP14 竞赛中,展示了惊人的准确性,达到了原子级别…

python读取linux系统的cpu以及内存占用

直接贴代码 import subprocessdef get_system_stats():# 通过 shell 命令获取 CPU 使用率和内存使用率cpu_command "top -bn1 | grep %Cpu(s) | awk {print $2}"memory_command "free | grep Mem | awk {print $3/$2 * 100.0}"# 执行命令并获取输出结果…

鸿蒙Hi3861学习十六-Huawei LiteOS-M(Socket服务端)

一、简介 具体概念可以参考上一章内容:鸿蒙Hi3861学习十五-Huawei LiteOS-M(Socket客户端)_t_guest的博客-CSDN博客 WIFI学习一(socket介绍)_wifi socket_t_guest的博客-CSDN博客 二、API介绍 bind 函数功能&#xff1…

pdf怎么转换成jpg图片?转换方式说明

将PDF转换为JPG图片是一种常见的文件格式转换操作,通常用于在不同设备上查看和共享PDF文档。但是,大多数情况下,将PDF转换为JPG图片可能并不总是可行或有效的。在本文中,我们将讨论为什么不能将PDF转换为JPG图片,以及如…

了解设备健康报表的关键指标与分析方法

在现代工业领域中,设备健康报表是一项关键工具,通过收集和分析设备的运行数据,它提供了关于设备状态和性能的重要指标。设备健康报表对于企业的设备管理和维护决策至关重要。本文将介绍设备健康报表的关键指标,并提供解读和分析方…

苹果手机、电脑如何进行屏幕录制?苹果录屏功能在哪?

随着人们生活水平的提高,不少小伙伴都会选择苹果手机、苹果电脑作为主要的设备。因为使用苹果电脑进行办公,不仅仅能够提升效率,对于文件的安全性也是有一些保障的。那么,在使用苹果电脑的时候,如果需要有录屏的需求该…

【JAVA】this关键字和static关键字

目录 1.this关键字 2.static关键字 容易混淆的问题 1.this关键字 一个对象一个this。this是一个变量,是一个关键字,是一个引用。this保存当前对象的内存地址,指向自身。所以,严格意义上来说,this代表的就是“当前对象…

Avada学习之-如何加入谷歌地图

如何正确设置谷歌地图 在给Wordpress网站配置谷歌地图时,常常会出现谷歌地图无法显示的问题。具体提示为Oops! something went wrong,如下图。出现这种问题有如下原因。 内容 隐藏 一、地址不正确 二、API 没填 三、插件冲突 一、地址不正确 很多…

iOS正确获取图片参数深入探究及CGImageRef的使用

一 图片参数的正确获取 先拿一张图片作为测试使用 图片参数如下: 图片的尺寸为: -宽1236个像素点 -高748个像素点 -色彩空间为RGB -描述文件为彩色LCD -带有Alpha通道 请记住这几个参数,待会儿我们演示如何正确获取。 将这张图片分别放在…

光纤衰减器作用及使用说明

在光纤通信中,光信号的强度过大或过小都会对信号的传输和接收产生不良的影响,因此光衰减器在光通信系统中起到了重要的作用。那什么是光衰减器呢?它又有什么作用呢?下面跟着小易一起来了解一下吧! 一、什么是光纤衰减…

APP自动化测试工具的作用和特点

随着移动应用的迅速发展,APP的自动化测试工具变得越来越重要。APP自动化测试工具可以帮助开发者在应用程序的不同平台上执行测试,从而检测和确保应用程序的完整性、稳定性和可靠性。下面将介绍APP自动化测试工具的作用和特点。 一、作用 提高测试效率&am…

Android自定义控件——控件的测量和绘制

控件的测量和绘制 控件架构setContentView()MeasureSpecViewView的测量View的绘制 ViewGroupViewGroup的测量ViewGroup的绘制 自定义View对现有控件进行扩展案例一:添加背景案例二:文字闪动 创建复合控件重写View实现全新控件案例一:弧线展示…

FLEXPART--空气块轨迹-扩散模式

模式简介: FLEXPART(Flexible Particle Dispersion Model)模式是由挪威大气研究所(Norwegian Institute for Air Research)和德国慕尼黑工业大学(Technical University of Munich)联合开发的空气块轨迹-扩散模式, 其通过计算区域内所有气块的运动轨迹进…