沧小海笔记之PCIE协议解析——第三章 PCIE的数据链路层
总目录在此哦~
https://blog.csdn.net/z123canghai/article/details/115644744
3.1 链路层干的活
3.1.1 DLLP格式
DLLP数据包是始于链路层并止于链路层。其存在意义是保证TLP数据包的正确传输和管理PCIE链路。DLLP数据包格式如下所示,一共是6个字节,这个长度是固定的。
其中“DLLP Type”字段是表示数据包的类型,如下所示,下面就简单介绍下各类型。
该数据包是接收端发送到发送端的数据包,表示接受到了对端数据,意味着一次的数据传输完成了。
该数据包是接收端到发送端的数据包,该数据包表示接收端有哪些数据包并没有被接收,接收端接收后会释放以正确接收的数据包的缓存空间,重传未正确接收的TLP。
PM即power Management,也就是与电源管理相关,用于保证电源管理状态机的正常运行。
这部分涉及到InitFC*、UpdateFC*相关数据包,是用于流量控制的,具体会在后面相关章节阐述。
3.1.2 ACK/NAK协议
ACK和NAK是DLLP两种数据类型,用于保证传输TLP能够被正确的传输的。首先明确的是,链路层的数据交换是固定的两个设备间的数据交换,是固定的。每个设备都有一个发送模块、一个接收模块,如下图所示。
对于链路层的通讯,有两种纠错机制,一种是校验错误,一种是超时判断。
3.1.3 数据链路层发送报文的顺序
数据链路层还规定了报文发送的顺序,DLLP和TLP数据包是共用一个PCIE链路,除此之外还有物理层的数据包,因此PCIE链路需要合理安排报文的发送数据,以避免锁死,故规定如下:
1、正在发送的TLP或者DLLP具有最高优先权。PCIE总线为了保证数据的完整性,不允许打断正在传送的报文。
2、处于底层的报文优先级高于处于协议高层的报文,例如NAK数据包优先于TLP
3、错误处理报文优先于正确的响应,例如NAK数据包优先于ACK
4、重传TLP数据包要优先于正常传输的TLP,因为重传数据包有问题,在其之后的数据包正确传输过去也不会正确接收
3.2 链路层的初始化
链路层根据物理层状态会进行不同的状态,本层也会产生些状态信号告知事务层。主要有两个信号,一个是DL_DOWN,一个是DL_UP。
沧小海笔记之PCIE协议解析——第三章 PCIE的数据链路层相关推荐
- 【沧小海笔记】之基于FPGA的以太网设计相关知识——第三章 xilinx 三速以太网IP核(TEMAC)的介绍
总目录在这里哦~ https://blog.csdn.net/z123canghai/article/details/114649502 Xilinx为我们提供了一个叫做"Tri-Mode ...
- 沧小海笔记之基于xilinx的三速以太网相关知识的学习与理解
目录 第一章 读<图解TCP/IP>笔记 第二章 互联网概述 第三章 物理层介绍(基于88E1111) 第四章 xilinx 三速以太网IP核(TEMAC)的介绍 第一章 读< ...
- 沧小海基于xilinx srio核的学习笔记之第二章 Rapidio技术概述
总的目录在这哦~ https://blog.csdn.net/z123canghai/article/details/114648658 目录 第二章 Rapidio技术概述 2.1 总体原则 2.2 ...
- 沧小海详解面试的必答题——I2C协议
目录 第一部分:I2C协议的概述 第二部分:I2C协议的阐述 第三部分:AT24C04简述 第四部分:基于verilog的程序设计(暂无) 对于大多从事FPGA行业的应届生来说,在面试过程中很可能会被 ...
- 沧小海笔记本之xilinx srio核的学习记录之目录
目录 第一章:互连问题 第二章 Rapidio技术概述 第三章 xilinx srio核结构 3.1 xilinx srio核的结构介绍 3.2 ilinx srio核的HELLO格式和流控 3.3 ...
- 沧小海笔记本之A7系列FPGA资源介绍
目录 第一部分:I / OBANK部分资源介绍 1.1 I/O BANK概述与ILOGIC资源概述 1.2 IDELAYE2.IDELAYCTRL和OLOGIC的资源介绍 1.3 OSERDES ...
- 计算机网络笔记(王道考研) 第三章:数据链路层
内容基于中国大学MOOC的2023考研计算机网络课程所做的笔记. 感谢LY,他帮我做了一部分笔记.其中第四章网络层各小节的顺序稍微做了下调整,和上课老师讲的先后顺序稍有不同,但内容是完整的. 课程内容 ...
- 高等数学笔记-乐经良老师-第三章-导数和微分
高等数学笔记-乐经良老师 第三章 导数和微分 第一节 导数的概念 一.例子 01 速度 运动物体的路程函数 S(t)S(t)S(t),时间从 t0→t0+Δtt_{0} \rightarrow t_{ ...
- 《小软笔记》用户协议
为了使用本软件及服务,请认真阅读本<用户协议>(以下简称"本协议"),确保您充分理解本协议中各条款.请您务必审慎阅读.充分理解各条款内容,并选择接受或不接受. 除非您已 ...
- C++Primer Plus (第六版)阅读笔记 + 源码分析【第三章:处理数据】
第三章:处理数据 简单变量 整型 整型 short .int .long 和 long 无符号类型 选择整型类型 整型字面值 C++如何确定常量的类型 char 类型:字符和小整型 bool类型 co ...
最新文章
- spring-boot-mybatis
- Spring Boot + MDC 实现全链路调用日志跟踪
- mysql数据库的介绍及安装
- 004_CSS元素选择器
- Leetcode 14.最长公共前缀
- 中年之后的人脉,靠的是两个字
- el-jy-ii计算机组成原理实验报告,EL-JY-II型计算机组成原理实验系统
- java中的四个指令_JAVA命令学习系列(四) ---- jstat
- mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...
- SQL Server 2008支持将数据导出为 insert into 的脚本
- phpcmsv9 更换域名出现页面无法访问后怎么办
- 图像形态学运算之腐蚀-膨胀篇
- 酷家乐的 Istio 与 Knative 实践
- 程序猿段子_程序猿的24个段子,笑着笑着眼泪就出来了
- Java程序员面试笔试宝典-数据库原理(三)
- vim插件管理利器:pathogen
- 通过优矿API python获取财报
- 疯狂动物城简介第一台通用计算机,疯狂动物城 简介
- 流程图软件最新排名,一分钟了解画流程图用什么软件
- 美化滚动条的一个插件 vue3-perfect-scrollbar
热门文章
- Recoil 的使用
- 2020牛客暑期多校训练营(第九场)K-The Flee Plan of Groundhog
- 批量转换文件编码(By notepad++)
- ### 20165219 2017-2018-2《Java程序设计》结对编程一 第二周总结
- 什么是telemetry
- RAID5换硬盘重建记录
- MBR30300VPT-ASEMI肖特基二极管MBR30300VPT
- 【NFC】手机手环模拟门禁卡
- 论文笔记 ACL 2021|Capturing Event Argument Interaction via A Bi-Directional Entity-Level Recurrent Decod
- 论证是一门学问 如何让你的观点有说服力-6 规则6 措辞前后一致