NXP i.MX8系列平台开发讲解 - 3.9 Linux PCIe协议相关介绍(二)

目录

1. PCIe 传输层协议

2. TLP介绍

2.1 TLP包格式

2.2 TLP包的种类

2.3 TLP 包传输例子

2.4 TLP 路由规则


根据上一章的知识,对于PCIe的发展和基础知识有了大概了解,本章节将会讲解PCIe的一些工作原理,使用的协议,通信交互相关的内容,再下一章节将实际去查看驱动里面相关的内容。

注意:以下内容讲解版本为PCIe 6.0

1. PCIe 传输层协议

根据上一章的内容知道,逻辑分层分为事务层、数据链路层、物理层。

在它们三层的协议上具有一定的关系:

在往底层的每个操作都需要添加自己的相关头部和CRC等相关信息;

  • 事务层需要注意有的TLP包可能没有Data,在Header 中的TD为1时候,会根据Header和Data计算出ECRC.

  • 数据链路层对于发送的TLP数据都需要添加头部Sequence Number,并计算CRC放入至尾部;但对于接收来说首先检查CRC问题,如果有问题TLP包将不会上传至TLP数据,没有错的话将交给事务层处理;

  • 物理层接收到链路层数据包,在头部添加Start和End来表示开始结束;在接收到就会除去Start和End交给数据链路层;

2. TLP介绍

事务层的数据包也就是距离用户最近的那一层,这一层的数据包称为TLP:Transaction Layer Packet;

TLP

  • 事务层完成TLP的封包与解包

  • TLP有点类似TCP/IP协议中的IP包,事务层通过TLP实现路由与寻址功能

  • 功能有硬件实现

2.1 TLP包格式

TLP包数据主要分为三个部分:

TLP Prefixes: 这个部分是一个可选区域(option)

TLP Header: 头部信息

Data Payload: 数据信息

TLP Digest: 摘要数据,可选(option)

2.2 TLP包的种类

按照事务或者地址空间类型分类:

  • Mermory 内存的读写,比如对内存的正常读写操作,内存使用不用地址格式操作(32位/64位)等等

  • I/O 支持I/O空间的读写

  • Configuration 配置空间的读写

  • Messag 消息事务

对于TLP包的分类主要通过头部前面4个字节中的第一个Byte进行决定的,如图

根据Fmt不同,可以决定Header长度大小,根据表中得到以下数据:

根据Tpye不同可以分为很多中不同的类:

  • memory 读写类

  • IO 读写类

  • cfg 读写类

  • message 读写类

  • completion 类

在Header最后的10给字节表示有效的负载长度。

2.3 TLP 包传输例子

这里以读取一个内存的地址为例子:

开始从Processor开始读取内存的地址,发起Root Complex requester,经过Switch A ,Switch B,根据CPID找到了右边那个Endpoint,根据接收的MRd,将返回内存地址数据经过Switch B, Switch A 再到Root Complex ,最后到达Processor。

2.4 TLP 路由规则

TLP 的数据包需要传输,如果在一个端点到另外一个端点的话,都是需要通过中间的桥设备进行承担路由功能,桥设备根据路由规则转发数据包,每一个桥设备都会把经过的数据包解析到事务层,然后按照TLP中的地址和路由进行转发。

TLP包路由转发方式有三种:

  • Address Routing: mermory 数据的读写

  • ID Routing: 配置空间读写

  • Implicit Routing: 消息类型

Address 路由:

TLP包会包含需要访问的mermory地址或者IO地址;

对于目标的Endpoint 会检查地址是否落在自己的BAR区间地址,如果是在这个区间则处理,如果不是则拒绝。

对于访问设备需要经过桥设备路由的方式,那么桥设备将会判断地址是否在区间内,在则转发,不在则不转发;

ID 路由:

TLP会包含目标端的Bus/device/function号,判断是落在ID范围内,在则转发,不在不转发;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

挑战一周完成Vue3项目Day2:路由配置+登录模块+layout组件+路由鉴权

一、路由配置 经过分析,项目一共需要4个一级路由:登录(login)、主页(home)、404、任意路由(重定向到404)。 1、安装路由插件 pnpm install vue-router 2、创建路由组件 在src目…

dremio数据湖sql行列转换及转置

1、行转列 (扁平化) 数据准备 表 aa 1.1 cross join unnest 在Dremio中,UNNEST 函数用于将数组或复杂类型的列(如JSON、Map或Array类型)中的值“炸裂”(分解)成多行. with aa as ( select 上海 as city, ARRAY[浦东…

2024程诺申论突击理论刷题班

2024程诺申论突击理论刷题班,为备考者提供了系统而高效的申论学习平台。在这个班里,程诺老师以其深厚的理论功底和丰富的教学经验,引导我们深入理解申论的本质和技巧。刷题环节精心设计,让我们在实战中巩固知识,提升能…

Professional CUDA C Programming

2023/4/28 1.使用nvfrof时,报错 解决方法: 将路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\extras\CUPTI\lib64 下的文件cupti64_2020.2.0.dll复制到路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin下即可。 2…

Innodb底层原理与Mysql日志机制到底怎么个事???

在学完Innodb底层原理与Mysql日志机制,自己进行总结,画了一张脑图,思路清晰许多 希望对大家也能有点帮助

Visual Studio Code基础:打开一个编辑器(文件)时,覆盖了原编辑器

相关阅读 VS codehttps://blog.csdn.net/weixin_45791458/category_12658212.html?spm1001.2014.3001.5482 在使用vscode时,偶尔会出现这样的问题:打开了某个编辑器(文件,下面统称文件)后,再打开其他文件…

安装JAVA和java IDEA并汉化过程

1.安装java: 打开java的下载链接: Java Downloads | Oracle 然后选择对应的版本下载即可,我这里是windows 所以下载这个 然后正常一步步安装即可。 2.配置java环境: 在桌面右键此电脑然后点击属性——高级系统设置——环境变量——然后…

ACE框架学习3

ACE Acceptor-Connector框架 该框架实现 Acceptor-Connector 模式,该模式解除了“网络化应用中的协作对端服务的连接和初始化”与“连接和初始化之后它们所执行的处理”的耦合。Acceptor-Connector 框架允许成用独立于它们所提供的服务来配置其连接布局的关键属性。…

【万字长文】看完这篇yolov4详解,那算是真会了

前言 目标检测作为计算机视觉领域的一个核心任务,其目的是识别出图像中所有感兴趣的目标,并给出它们的类别和位置。YOLO(You Only Look Once)系列模型因其检测速度快、性能优异而成为该领域的明星。随着YOLOv4的推出,…

网络安全的防护措施有哪些?

1. 安全策略和合规性 2. 物理和网络安全 3. 数据加密 4. 软件和系统更新 5. 访问控制 6. 威胁监测和响应 7. 员工培训和安全意识 8. 备份和灾难恢复 零基础入门学习路线 视频配套资料&国内外网安书籍、文档 网络安全面试题 网络安全的防护措施多种多样&#xff0c…

JVM的垃圾回收机制(GC机制)

在Java代码运行的过程中,JVM发现 某些资源不需要再使用的时候,就会自动把资源所占的内存给回收掉,就不需要程序员自行操作了。“自动回收资源”就是JVM的“垃圾回收机制”,“垃圾回收机制”也称"GC机制"。 对于Java代码…

排序算法(2)快排

交换排序 思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 一、冒泡排序 public static…

Sarcasm detection论文解析 | 通过阅读进行讽刺推理-Reasoning with sarcasm by reading in-between

论文地址 论文地址:[1805.02856] Reasoning with Sarcasm by Reading In-between (arxiv.org) 论文首页 笔记大纲 通过阅读进行讽刺推理论文笔记 📅出版年份:2018📖出版期刊:📈影响因子:🧑文章作者:Tay Yi,Luu Anh…

FIR滤波器——DSP学习笔记三(包含一个滤波器设计的简明案例)

​​​​​​ 背景知识 FIR滤波器的特性与优点 可精确地实现线性相位响应(Linear phase response),无相位失真; 总是稳定的,所有极点都位于原点 线性相位FIR滤波器的性质、类型及零点位置 冲击响应满足:奇…

挺看好的一位实习生,顶峰见!

大家好,我是程序员鱼皮。今天我要分享自己团队里一位全栈实习生的实习总结。 在实习期间,这位同学参与了多个项目的工作,包括企业动态公告系统的开发、企业周边系统的搭建、撰写技术教程、开发 IDEA 插件、构建云端管理平台等等。 实习近 3…

个人学习总结__打开摄像头、播放网络视频的以及ffmpeg推流

前言 最近入手了一款非常便宜的usb摄像头(买回来感觉画质很低,没有描述的4k,不过也够用于学习了),想着利用它来开启流媒体相关技术的学习。第一步便是打开摄像头,从而才能够对它进行一系列后续操作,诸如实…

网动统一通信平台存在任意文件读取漏洞

声明: 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 简介 网动统一通信平台(ActiveUC&#xff09…

AEMTO--一种自适应进化多任务优化框架

AEMTO–一种自适应进化多任务优化框架 title: Evolutionary Multitask Optimization With Adaptive Knowledge Transfer author: Hao Xu, A. K. Qin, and Siyu Xia. journal: IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION (TEVC) DOI&…

基于SpringBoot+Vue校园竞赛管理系统的设计与实现

项目介绍: 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,竞赛信息因为其管理内容繁杂,管理数量繁多导致手工进行…

B2B商城系统如何搭建?

相较于单个商家的独立商城,B2B商城系统凭借诸多优势成为电商领域中最受关注的一种模式。目前在政府、金融、汽车、跨境等行业领域都有广泛应用。那么,B2B商城系统如何搭建呢?我们从开发语言、功能模块、优势来进行分析。 一、B2B商城系统开发…