PCIE协议-4-物理层逻辑模块

4.1 简介

物理层将事务层和数据链路层与用于链路数据交换的信令技术隔离开来。物理层被划分为逻辑物理层和电气物理层子模块(见图4-1)。

 4.2 逻辑物理层子模块

逻辑子模块有两个主要部分:一个发送部分,它准备从数据链路层传递过来的信息,以便通过电气子模块传输;一个接收部分,它识别并准备接收到的信息,然后将其传递给数据链路层。

逻辑子模块和电气子模块通过状态和控制寄存器接口或功能等效设备协调每个收发器的状态。逻辑子模块指导物理层的控制和管理功能。

PCI Express在数据速率为2.5 GT/s或5.0 GT/s时使用8b/10b编码。对于大于或等于8.0 GT/s的数据速率,它使用每条通道的编码以及物理层封装。

4.2.1  2.5 GT/s和5.0 GT/s数据速率编码

4.2.1.1 符号编码

在2.5和5.0 GT/s的数据速率下,PCI Express使用8b/10b传输编码。这种传输编码的定义与ANSI X3.230-1994标准第11条款(以及IEEE 802.3z,36.2.4)中指定的定义相同。采用这种方案,8位数据字符被当作3位和5位映射到一个4位代码组和一个6位代码组上。控制位与数据字符结合使用,用于确定何时编码8b/10b传输编码中包含的12个特殊符号之一。这些代码组连接起来形成一个10位符号。如图4-2所示,ABCDE映射到abcdei,FGH映射到fghj。

4.2.1.1.1 数据的串行化和反串行化

符号的位被放置在一条通道上,从位"a"开始,以位"j"结束。图4-3和图4-4中展示了示例。 

4.2.1.1.2 用于帧定界和链路管理的特殊符号(K代码)

8b/10b编码方案提供了与用于表示字符的数据符号不同的特殊符号。这些特殊符号用于本章后面描述的各种链路管理机制。 特殊符号也用于对DLLPs和TLPs进行帧定界, 使用不同的特殊符号允许这两种类型的包能够快速且容易地区分开来。

表4-1显示了PCI Express使用的特殊符号,并为每个符号提供了简要说明。这些符号将在后续章节中更详细地讨论。每个这些特殊符号以及数据符号,都必须通过查看整个10位符号来解释。

4.2.1.1.3 8b/10b 解码规则

有效的8b/10b代码的符号表在附录B中给出。这些表格有一列用于正差错和一列用于负差错。

在从电气空闲状态出来后首次传输差分数据时,除非有其他要求,否则发射器可以选择任何差错,发射器之后必须遵循正确的8b/10b编码规则,直到进入下一个电气空闲状态。

当接收器检测到从电气空闲状态退出时,初始差错设置为获得符号锁定时使用的第一个符号的差错。如果由于硬件设计实现的错误数量,在传输差分信息期间丢失并重新获得符号锁定,差错也可能会被重新初始化。

在初始差错设置后,所有接收到的符号都必须在与当前运行差错相对应的正确列中找到。 如果接收到的符号在与错误的运行差错相对应的列中找到,或者符号与两列都不对应,则物理层必须通知数据链路层接收到的符号无效。这是一个接收器错误,并且是与端口相关联的报告错误(见第6.2节)。

4.2.1.2 符号到链路的帧定界和应用

符号到通道的帧定界和应用分为两类。第一类是有序集(Ordered Sets),第二类是TLPs(事务层包)和DLLPs(数据链路层协议包)。有序集总是在每条通道上串行传输,以便在多通道链路上,所有通道同时出现完整的有序集。

帧定界机制使用特殊符号K28.2 "SDP"来开始一个DLLP,使用特殊符号K27.7 "STP"来开始一个TLP。特殊符号K29.7 "END"用于标记TLP或DLLP的结束。

符号的概念流必须从其内部表示(这是实现依赖的)映射到外部通道。符号被映射到通道上,以首位符号(代表字符0)放置在通道0上;第二个放置在通道1上;依此类推。x1链路是一个最简单案例,映射是最普通的,所有符号按顺序放置在单一通道上。

当没有传输包信息或特殊有序集时,发射器处于逻辑空闲状态。在此期间,必须传输空闲数据。空闲数据必须由数据字节0('h00),根据4.2.1.3节的规则进行扰乱,并根据4.2.1.1节的规则进行8b/10b编码,与TLP和DLLP数据符号的扰乱和编码方式相同。同样,当接收器没有接收任何包信息或特殊有序集时,接收器处于逻辑空闲状态,并且应接收上述描述的空闲数据。 在传输空闲数据期间,必须继续按照4.2.7节的规定传输SKP有序集。

对于以下规则,"放置"定义为发射器将符号放入链路的正确通道的要求。

  • TLPs必须通过在TLP开始放置一个STP符号,在TLP结束放置一个END符号或EDB符号来帧定界(见图4-5)。
  • 一个正确形成的TLP在STP和END或EDB符号之间包含至少18个符号。如果接收到的序列在STP和END或EDB符号之间少于18个符号,接收器允许将其视为接收器错误。 如果检查,这是一个与接收端口相关联的报告错误(见第6.2节)。
  • DLLPs必须通过在DLLP开始放置一个SDP符号,在DLLP结束放置一个END符号来帧定界(见图4-6)。
  • 逻辑空闲定义为一个或多个符号时间的时间段,在此期间没有传输/接收信息:TLPs、DLLPs或任何类型的特殊符号。与电气空闲不同,在逻辑空闲期间,空闲符号(00h)正在被传输和接收。
    • 当发射器处于逻辑空闲状态时,所有通道上必须传输逻辑空闲数据(00h)。 这根据4.2.1.3节的规则进行扰乱。
    • 接收器必须忽略传入的逻辑空闲数据,并且除了扰乱序列外,不得对任何特定数据模式有任何依赖。
  • 对于大于x1的链路,当从逻辑空闲链路条件开始传输TLP时,必须将STP符号(代表TLP的开始)放置在通道0上。
  • 对于大于x1的链路,当从逻辑空闲链路条件开始传输DLLP时,必须将SDP符号(代表DLLP的开始)放置在通道0上。
  • STP符号放置在链路上的频率不得超过每个符号时间一次。
  • SDP符号放置在链路上的频率不得超过每个符号时间一次。
  • 只要满足上述规则,就允许TLP和DLLP传输连续跟随彼此。
  • 在同一符号时间内,可以放置一个STP符号和一个SDP符号在链路上。
    • 大于x4的链路可以在第4*N通道上放置STP和SDP符号,其中N是一个正整数。 例如,在x8链路上,STP和SDP符号可以放置在通道0和4;在x16链路上,STP和SDP符号可以放置在通道0、4、8或12。
  • 对于N等于8或更大的xN链路,如果END或EDB符号被放置在通道K上,而K不等于N-1,并且通道K+1后面没有STP或SDP符号(即,没有TLP或DLLP立即跟随),那么PAD符号必须被放置在通道K+1到通道N-1。
    • 例如,在x8链路上,如果END或EDB被放置在通道3上,当后面没有STP或SDP跟随时,PAD必须被放置在通道4到7。
  • EDB符号用于标记一个无效化TLP的结束。有关EDB使用的更多信息,请参见第3.6.2.1节。
  • 接收器可以自行选择检查本节规则的违规情况。这些检查是独立的可选检查(见第6.2.3.4节)。如果进行了检查,违规被视为接收器错误,并且是与端口相关联的报告错误(见第6.2节)。

4.2.1.3 数据扰码

为了改善链路的电气特性,通常会对数据进行扰乱。这涉及到使用线性反馈移位寄存器(LFSR)生成的模式与数据流进行异或(XOR)操作。在发射端,扰乱是在8b/10b编码之前对字符应用的。在接收端,在8b/10b解码之后对字符应用反扰乱。

在多通道链路上,扰乱功能可以使用一个或多个LFSR实现。当每个链路有多个发射LFSR时,这些LFSR必须协同工作,在每个LFSR中保持相同的同时(通道到通道输出偏斜)值。当每个链路有多个接收LFSR时,这些LFSR也必须协同工作,在每个LFSR中保持相同的同时(通道到通道偏斜)值。无论它们如何实现,LFSR必须以通道为单位与数据交互,就好像链路内每个通道都有一个单独的LFSR一样。

LFSR在图4-10中有图形表示,扰乱或反扰乱是通过将8位(D0-D7)字符与LFSR的16位(D0-D15)输出进行串行异或操作来执行的。LFSR的一个输出,D15,与要处理的数据的D0进行异或。然后,LFSR和数据寄存器串行前进,重复D1到D7的输出处理。数据异或后,LFSR前进。LFSR实现了多项式:

数据链路层用来通知物理层禁用扰乱的机制和/或接口是硬件定义实现的,并且超出了本规范的范围。 数据扰乱规则如下:

  • COM符号初始化LFSR。
  • 除了SKP符号外,每个符号LFSR值前进八个串行移动。
  • 所有数据符号(D代码),除了有序集内(例如,TS1、TS2、EIEOS)、合规模式(见第4.2.8节)和修改后的合规模式(见第4.2.9节)之外,都被扰乱。
  • 所有特殊符号(K代码)都不被扰乱。
  • 线性反馈移位寄存器(LFSR)的初始种子值(D0-D15)是FFFFh。当一个COM符号从发射端LFSR退出后,发射端的LFSR会被初始化。每当COM符号进入该链路任何通道上的接收端LFSR时,接收端的LFSR也会被初始化。
  • 扰乱只能在配置结束时禁用(见第4.2.6.3.5节)。
  • 对于回环从设备,扰乱不适用。
  • 默认情况下,在检测模式下扰乱始终是启用的。

 

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

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

相关文章

v-md-editor和SSE实现ChatGPT的打字机式输出

概述 不论是GPT还是文心一言,在回答的时候类似于打字机式的将答案呈现给我们,这样的交互一方面比较友好,另一方面,当答案比较多、生成比较慢的时候也能争取一些答案的生成时间。本文后端使用express和stream,使用SSE将…

Boosting Cache Performance by Access Time Measurements——论文泛读

TOC 2023 Paper 论文阅读笔记整理 问题 大多数现代系统利用缓存来减少平均数据访问时间并优化其性能。当缓存未命中的访问时间不同时,最大化缓存命中率与最小化平均访问时间不同。例如:系统使用多种不同存储介质时,不同存储介质访问时间不同…

【C++初阶】—— 类和对象 (上)

📝个人主页🌹:EterNity_TiMe_ ⏩收录专栏⏪:C “ 登神长阶 ” 🌹🌹期待您的关注 🌹🌹 类和对象 1. 初步认识C2. 类的引入3. 类的定义声明和定义全部放在类体中声明和定义分开存放 4.…

8个实用网站和软件,收藏起来一定不后悔~

整理了8个日常生活中经常能用得到的网站和软件,收藏起来一定不会后悔~ 1.ZLibrary zh.zlibrary-be.se/这个网站收录了超千万的书籍和文章资源,国内外的各种电子书资源都可以在这里搜索,98%以上都可以在网站内找到,并且支持免费下…

linux中ansible整理笔记

一、工作模式 1. adhoc临时命令 语法: ansible 主机或者组列表 -m 模块 -a “参数” 2. playbook 语法: ansible-playbook xxx.yml 二、模块 1. ping 2.command:默认模块(不支持重定向,管道) 3.shell:类似com…

IP地址显示“不安全”怎么办|已解决

解决IP地址显示“不安全”的问题,通常需要确保网站或服务使用HTTPS协议进行加密通信,可以通过部署SSL证书来解决,以下是具体的解决步骤: 1 申请IP地址SSL证书:网站管理员应向证书颁发机构(CA)申…

网络拓扑—WEB-IIS服务搭建

文章目录 WEB-IIS服务搭建网络拓扑配置网络IISPC 安装IIS服务配置IIS服务(默认站点)PC机访问网页 配置IIS服务(新建站点)PC机访问网页 WEB-IIS服务搭建 网络拓扑 //交换机忽略不计 IIS服务IP:192.168.1.1 PC机IP&…

人类交互2 听觉处理和语言中枢

人类听觉概述 人类听觉是指通过耳朵接收声音并将其转化为神经信号,从而使我们能够感知和理解声音信息的能力。听觉是人类五种感觉之一,对我们的日常生活和交流至关重要。 听觉是人类交流和沟通的重要工具。通过听觉,我们能够听到他人的语言…

安装错误提示Please run MaterialLibrary2018.msi first或者其他MaterialLibrary版本

打开autoremove,系统检查,点击开始检查。检查完成修复。 可以解决部分该问题,如果没解决的请咨询

Linux中的文件描述符

1.系统调用接口和库函数的关系 函数:fopen fclose fread fwrite 都是c标准库当中的函数,也就是用户操作接口中ibc系统调用:open close read write 都是系统调用提供的接口 c语言中接口底层封装的都是系统调用接口 FILE* stdin stdout stderr…

Python模块、包和异常处理

大家好,在当今软件开发领域,Python作为一种简洁、易读且功能强大的编程语言,被广泛应用于各种领域。作为一名测试开发工程师,熟练掌握Python的模块、包和异常处理是提高代码可维护性和错误处理能力的关键。本文将和大家一起探讨Py…

SAP-MRP和采购申请

1、如果采购申请是手工创建的,跑MRP会不会被覆盖? 创建一个采购申请18089476,然后运行MRP-MD03,再用MD04查看下 从上图看,手工创建的采购申请被打上*号,没有被覆盖掉。 2、如果采购申请被审批了,会不会被覆盖掉? 首先创建一个独立需求MD61 然后库存消耗掉为0,运行M…

普源精电收购耐数电子——用“钞能力”拿下“量子”?

「量子市界」聚焦量子前沿,揭秘市场动态┃2024年4月30日,普源精电新增“量子科技”概念。 似乎一夜之间,新增“量子科技”概念的上市企业如雨后春笋般登场——普源精电就是其一。普源精电本就持有耐数电子32.26%股权,于4月2日发布…

c4d云渲染是工程文件会暴露吗?

在数字创意产业飞速发展的今天,C4D云渲染因其高效便捷而备受欢迎。然而,随着技术应用的深入,人们开始关注一个核心问题:在享受云渲染带来的便利的同时,C4D工程文件安全吗?是否会有暴露的风险?下…

【如何让论文中摘要后面的内容不出现在目录中】

首先选择摘要二字,设置为一级标题,然后选择摘要后面的内容设置为正文样式,再选择这一部分看一下是不是都是正文大纲级别,如果是那就可以了。 具体流程如下 1、选择摘要二字,设置为一级标题样式 2、选择摘要后面的文…

x264 码率控制原理:rate_estimate_qscale 函数

rate_estimate_qscale 函数 原理 函数功能:根据目前使用的实际比特数更新一帧的qscale;是一个复杂的决策过程,需要考虑多种因素,如帧类型、编码的复杂度、目标比特率、缓冲区大小等,以确保视频质量和文件大小之间的平衡。函数参数分析:x264_t *h :编码器上下文信息结构…

扩散模型学习1

DDPM 总体训练原理 https://www.bilibili.com/video/BV1nB4y1h7CN/?spm_id_from333.337.search-card.all.click&vd_sourcef745c116402814185ab0e8636c993d8f 讲得很好:每次都是输入t和noise-x的图像,预测noise之后得到和加入的noise比较&#xff1b…

LLM实战:当网页爬虫集成gpt3.5

1. 背景 最近本qiang~关注了一个开源项目Scrapegraph-ai,是关于网页爬虫结合LLM的项目,所以想一探究竟,毕竟当下及未来,LLM终将替代以往的方方面面。 这篇文章主要介绍下该项目,并基于此项目实现一个demo页面&#x…

Java并发: 锁和同步

在Java并发: 面临的挑战那一篇中我们提到锁和同步是实现并发安全(可见性/原子性)的方法之一。这一章我们来讲讲Java中的锁和同步的各种工具,包括: LockSupportAbstractQueuedSynchronizerJava内置的锁实现 1. LockSupport LockSupport是基于Unsafe的park/unpark实…

智能禁区监控:计算机视觉在人员禁区闯入检测中的应用

基于视觉分析的人员禁区闯入行为检测算法主要依赖于计算机视觉技术和深度学习算法。这些技术结合高性能的摄像头和图像处理硬件,实现了对监控区域内人员行为的自动识别和分析。具体来说,这种检测算法利用摄像头捕捉的视频数据,通过深度学习模…