PCIe专题学习——4.0(物理层结构解析)

2023-11-10

之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。

一:物理层结构

在PCIe体系中,物理层处于最低层,发送端数据链路层(Data Link Layer)的DLLP和TLP报文通过物理层(Physical Layer)发送至接收端的物理层,再传送至接收端的数据链路层;

DLLP和TLP从数据链路层到达物理层后,物理层会在其两端分别加上Start和End标识,主要是方便接收端找到DLLP和TLP的边界。

另外,物理层又分为两层:逻辑层(Logical)和电气层(Electrical),逻辑层主要负责与数据链路层之间的数据交互,由发送端逻辑TX和接收端逻辑RX组成,电气层是物理层的模拟接口,包括了差分信号驱动和接收器,本专题对电气层不作展开介绍,主要会针对逻辑层进行解析。

 

下面我们看一看逻辑层的样子:

发送端逻辑层

 

 接收端逻辑层

看到上面两张逻辑层结构图,又晕了;

这里先结合上面的逻辑结构图大致表述一下逻辑层的作用:

发送端:

1. 从发送端数据链路层下发的DLLP/TLP在到达物理层后,会先放入Tx Buffer中。在Tx buffer中,DLLP/TLP被加上前缀Start和后缀End。

2. 之后,DLLP/TLP通过多路选择器Mux,到达Byte Stripping组件。由于PCIe总线可能包含多个Lane, Byte Stripping组件将DLLP/TLP数据报文按照数据依次分发到不同的Lane。

3. 数据进入每个Lane之后都会做加扰(Scramble), 8/10b编码( Only for Gen1/2), 128b/130b编码(Only for Gen3). 

4. 完成加扰和编码后,数据通过并转串逻辑,最后发送到PCIe链路中。

接收端:

1. 接收端的逻辑层从PCIe链路的各个Lane中获得串行数据。

2. 各个Lane的数据经过解码与解扰(De-Scramble),最终到达Byte Un-Stripping组件。

3. Byte Un-Stripping组件将来自各个Lane的数据进行合并,检查Start和End标识后送入Rx Buffer, 最后传送至接收端数据链路层。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCIe专题学习——4.0(物理层结构解析) 的相关文章

  • 必看: 原来PCIe技术原理这么简单!

    硬盘是大家都很熟悉的设备 xff0c 一路走来 xff0c 从HDD到SSD xff0c 从SATA到NVMe xff0c 作为NVMe SSD的前端接口 xff0c PCIe再次进入我们的视野 作为x86体系关键的一环 xff0c PCI
  • NGFF、M.2、PCIe、NVMe概念区分以及PCIEx1 x4 x8 x16区别

    对于NGFF M 2 PCIe NVMe等概念的说明 解决方案 NGFF Next Generation Form Factor xff0c 顾名思义 xff0c 是物理外形 Form Factor 的标准 与 NGFF 并列的是 2 5
  • PCIe扫盲——PCIe简介

    转载地址 xff1a http blog chinaaet com justlxy p 5100053066 PCI Express是继ISA和PCI总线之后的第三代I O总线 xff0c 即3GIO 由Intel在2001年的IDF上提出
  • PCIe总线引脚定义

    然后看一下PCI E的接口定义 这就是显卡插口前面的那段短的金手指 xff0c 就是这段 xff1a 这一段负责供电 SMBus和感知设备是否插上 xff0c 对于数据的传输作用不大 xff0c 所以不用深究 用浅绿色标出来的是检测插槽上设
  • FPGA实现MPEG2视频压缩PCIe传输 提供软硬件工程源码和技术支持

    目录 1 前言2 MPEG2视频压缩实现3 我已有的FPGA图像视频编解码方案4 我已有的PCIE方案5 MPEG2视频压缩PCIE传输设计方案FPGA硬件设计软件设计 6 Vivado工程详解7 Linux下的XDMA驱动安装8 上板调试
  • 【PCIe】1: PCIe 硬件时序初始化过程

    目录 1 前言 2 PCIe理论带宽 3 PCIe连接器引脚定义 4 关键信号描述 4 1 PERST 4 2 REFCLK 和REFCLK 信号
  • 大带宽、高速率接口对比---USB、PCIE、SATA、HDMI和以太网等接口

    一 PCIE接口 二 USB接口 三 SATA接口 SATA 编码方式 原始频宽 传输速率 有效速率 排线最长长度 SATA1 0 SATA2 0 8bit 10bit 3Gb s 300MB s 275MB s 1M SATA3 0 8b
  • M.2/sata2.0/3.0接口,PCI-E1.0/2.0/3.0/4.0x2x4x8x16速率汇总

    B站 硬件科普 PCIe到底是个什么东西 他在电脑里是干什么的 PCIE2 0 PCIE3 0 PCIE4 0 PCIE5 0接口的带宽 速率计算 sata2和sata3接口区别 https diy pconline com cn grap
  • PCIE总线基本介绍(和PCI总线差异、速率计算、引脚定义)

    1 PCI和PCIE的差异 1 PCIE协议在软件编程上是兼容PCI协议 不同在于PCIE和PCI的控制器 2 PCIE是差分串行信号线 PCI是电平并行信号线 3 PCI协议使用INTA INTB INTC INTD 四根中断线来触发终端
  • [PCIe]LTSSM与电源管理

    1 LTSSM LTSSM全称是Link Training and Status State Machine 有以下11个状态 Detect Polling Configuration Recovery L0 L0s L1 L2 Hot R
  • PCIE结构拓扑(RC、EP、SWITCH)介绍

    1 PCIE典型结构拓扑 1 个人理解 红色方框部分一般是在芯片内部集成 对外可提供多个PCIE接口 2 芯片提供的PCIE接口 可以接EP设备 PCI桥 Switch设备 2 RC Root Complex 个人理解 RC在功能上和Swi
  • PCIe专题学习——2.1

    之前我们对PCIe的一些基础概念做了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link layer
  • PCIe专题学习——5.0(总线电源管理)

    之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link lay
  • PCIe5.0的Add-in-Card(AIC)金手指layout建议(三)

    PCIe5 0的Add in Card AIC 金手指layout建议 一 PCIe5 0的Add in Card AIC 金手指layout建议 二 前面两篇文章介绍了第一种金手指的layout建议 适用速率在32 0 GT s 以下介绍
  • 基于Xilinx XDMA 的PCIE通信

    基于Xilinx XDMA 的PCIE通信 概述 想实现基于FPGA的PCIe通信 查阅互联网各种转载 基本都是对PCIe的描述 所以想写一下基于XDMA的PCIe通信的实现 PCIe结构仅做简单的描述 笔记 了解详细结构移至互联网 实践实
  • 深入PCI与PCIe之一:硬件篇

    PCI总线和设备树是X86硬件体系内很重要的组成部分 几乎所有的外围硬件都以这样或那样的形式连接到PCI设备树上 虽然Intel为了方便各种IP的接入而提出IOSF总线 但是其主体接口 primary interface 还依然是PCIe形
  • [嵌入式linux]PCIe 热拔插(rescan)

    linux下可通过 sys bus pci devices 0000 bus number device number function number 目录下的节点进行热拔插操作 板子上电前PCIe插槽有一块NVME的固态硬盘 0 1985
  • 如何为可缓存 PCIe BAR 进行 mmap

    我正在尝试编写一个自定义驱动程序mmap PCIe BAR 的函数 目标是使该 BAR 可缓存在处理器缓存中 我知道这不是实现最高带宽的最佳方法 并且写入顺序是不可预测的 本例中也不是问题 这类似于中所描述的如何阻止 MMAP 缓存值 处理
  • 映射 MMIO 区域写回不起作用

    我希望对 PCIe 设备的所有读写请求都由 CPU 缓存进行缓存 然而 它并没有像我预期的那样工作 这些是我对回写 MMIO 区域的假设 对 PCIe 设备的写入仅在缓存回写时发生 TLP 有效负载的大小是缓存块大小 64B 然而 捕获的
  • Linux 内核中的 DMA 映射和 DMA 引擎是什么?

    Linux 内核中的 DMA 映射和 DMA 引擎是什么 DMA映射API和DMA引擎API何时可以在Linux设备驱动程序中使用 任何真正的 Linux 设备驱动程序示例作为参考都会很棒 Linux 内核中的 DMA 映射和 DMA 引擎

随机推荐

  • 美国科技大佬成功之前混得都有多惨

    摘要 超过三分之一在美国成立的顶尖高科技公司是由在国外出生的人创立的 他们的成功经验带动许多移民来到美国实现美国梦的希望 id cproIframe u1503021 2 width 250 height 250 src http pos
  • 使用DBN实现风速预测matlab代码

    使用DBN实现风速预测matlab代码 风速预测在实际生产生活中有着广泛的应用 对于风电场 农业灌溉 城市规划等领域都有着重要的意义 本文将介绍如何使用深度信念网络 Deep Belief Networks DBN 来实现风速预测 并提供相
  • Mysql数据库的导入和导出

    Mysql数据库的导入和导出 1 导入 2 导出 Mysql数据库的可移植性是比较好的 在命令行状态下可用仅仅一行的代码就实现数据库的导入和导出 不论是在Windows操作系统还是Linux操作系统下的命令行 命令基本上完全一致 1 导入
  • QT主窗口与子窗口互相传值笔记

    1 主窗口向子窗口传值 将子窗口定义为主窗口的成员变量 在子窗口中定义接受数据的成员变量 主窗口中可以使用子窗口成员变量来访问他的成员变量 于是就能直接赋值了 void Main wgt test son wgt num 18 2 子窗口向
  • PAT 1015 德才论 (25分) C语言实现

    1015 德才论 25分 宋代史学家司马光在 资治通鉴 中有一段著名的 德才论 是故才德全尽谓之圣人 才德兼亡谓之愚人 德胜才谓之君子 才胜德谓之小人 凡取人之术 苟不得圣人 君子而与之 与其得小人 不若得愚人 现给出一批考生的德才分数 请
  • 将文件或目录移动到另外的目录

    File or directory to be moved File file new File filename Destination directory File dir new File directoryname Move fil
  • Flutter编译卡在Running Gradle task ‘assembleDebug‘

    为什么卡在这一步 把网络断开 发现了问题 卡在了下载运行环境和依赖库的步骤 jcenter 下载速度太慢 知道原因就好办了 需要修改3个地方 1 首先找到fultter sdk所在文件夹的位置 依次进入 flutter packages f
  • 单端口RAM实现FIFO

    RAM分类 单口ram 单端口RAM只有一组数据线和一组地址线 只有一个时钟 读写共用地址线 输出只有一个端口 所以单端口RAM的读写操作不能同时进行 当wea拉高时 会将数据写入对应的地址 同时douta输出的数据与此时写入的数据是一致的
  • STC32G12K128内部集成的I2C总线实现oled12864显示

    STC32G 系列的单片机内部集成了一个 I2C 串行总线控制器 I2C 是一种高速同步通讯总线 通讯使用 SCL 时钟线 和 SDA 数据线 两线进行同步通讯 对于 SCL 和 SDA 的端口分 STC32G 系列的单片机提供了切换模式
  • springboot+mybatisplus 动态切换数据源——数据库(通过AOP获取head参数动态切换)

    写这个博客 是记录一下自己的学习过程 因为网上信息杂乱不清 所以此博客只做记录和分享作用 参考博客链接 https blog csdn net QiuHaoqian article details 120479890 再此基础上修改了一些
  • sqli-labs/Less-30

    首先判断一下是否为数字型注入 输入如下 id 1 id 1 and 1 2 回显如下 正确回显了 说明属于字符型注入 然后在判断是属于单引还是双引 输入1 回显如下 正确回显 再试一试双引号 输入1 回显如下 这告诉我们两件事情 1 这属于
  • Git 命令大全「全面且实用,值得收藏」

    用了这么久的 git 工具 中途也使用过 SourceTree 但是最后发现 还是代码香啊 虽然之前也写过一篇学习笔记 Git教程学习笔记和填坑总结 以及 SourceTree 工具的使用 但是感觉那篇还是笔记冗余 看起来不是很明确 所以
  • 利用docker来部署自己的项目

    在部署自己项目时 开始时一头雾水 如果直接放在服务器上跑 既麻烦又不稳定 后来看到有写采用docker进行项目部署 前后折腾了一天 总算部署上去了 分享出来让大家少走点弯路 整体的流程大概是这样的 首先 准备环境 需要在本地部署docker
  • 在R中线性回归分析的函数是lm()

    在R中线性回归分析的函数是lm 1 一元线性回归 我们可以根据以上数据来分析合金的强度是否与碳含量有关系 首用以下命令把数据读取到R中 x lt c seq 0 10 0 18 by 0 01 0 20 0 21 0 23 y lt c 4
  • JS格式化日期

    JS格式化日期真是件淡疼的事 网上转了半天终于发现有一个挺不错的函数 贴上来做个笔记 时间对象的格式化 Date prototype format function format format yyyy MM dd hh mm ss var
  • cmake命令之使用静态库(include_directories,link_directories,target_link_directories)

    include directories的命令形式如下 include directories AFTER BEFORE SYSTEM dir1 dir2 link directories的命令形式如下 link directories AF
  • Data collection (imaging)

    Now that we ve talked about sample prep let s talk about imaging 0 05 In a single particle project the images can either
  • LeetCode左程云算法课笔记

    左程云算法课笔记 剑指Offer 位运算 运算符理解 寻找出现双中的单数 取出一个数最右边1的位置 找所有双出现中的两个单数 整数二进制奇数位偶数位交换 数组中全部出现k次返回出现一次的数 链表 判读链表元素是否回文 利用栈结构 利用栈结构
  • 解决VS打不开xxx.ui文件,xxx.ui无法打开文件

    目录 场景复现 解决方案 场景复现 在使用vs进行开发时 居然无法打开qt的ui文件 这本质上是因为找不到designer exe的路径 解决方案 1 右击ui文件 然后选择打开方式 2 点击右侧的添加按钮 3 点击程序后面的 按钮选择合适
  • PCIe专题学习——4.0(物理层结构解析)

    之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍 了解了PCIe是一种封装分层协议 packet based layered protocol 主要包括事务层 Transaction layer 数据链路层 Data link lay