学习笔记: PCIe 4.0 协议(一)-- 概述
一、什么是PCIe
定义:PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准。
传输方式:全双工,TX和RX都采用串行差分信号进行数据传输。
Lane:一条Lane是一对TX差分线加上一对RX差分线,可以有2的n次方条Lane,最多支持32条Lane。
带宽:最高时钟频率是16GHz,则一条Lane的带宽计算 16G * (128/130) / 8 = 1.969GB/s。
发送端将原始数据包封装成协议规定的格式,再转化成串行数据流发出,接收端将串行数据流收集后,按照协议规定逆向解析出原始的数据包
PCIe使用的串行传输方式取代了PCI的并行传输方式,因为并行总线在时钟频率和布线方面会有很多限制,在很多领域高速串行有着取代传统并行的趋势。
二、PCIe结构拓扑
Root Complex: 简称RC,作为PCIe树的根,一方面是连接CPU、Memory子系统,另一方面可以连接多个PCIe端口。
Switch:可以把一个PCIe端口转换成多个PCIe端口。
Endpoint:PCIe终端设备成为Endpoint,它可以挂在RC上,也可以挂在Switch上。
三、PCIe封/拆包流程
一个原始的数据包(Data)通过如上图三层逻辑(Transaction、Data Link、Physical)的处理变成了一个可以发送的包,通过TX发送给对端,反之,在RX接收的包也可以通过如上图三层逻辑解出原始的数据包(Data)。
- 事务层(Transaction):给Data增加了Header和ECRC。
- 链路层(Data Link):在事务层的基础上增加了Sequence Number和LCRC。
- 物理层(Physical):在链路层的基础上增加了Framing和Framing。
四、各层逻辑功能
PCIe上的通信是基于Transaction的,根据地址空间不同可以把Transaction分为4类:Memory、I/O、Configuration、Message。
对于发送端所有被标记位保留的域段都必须填0,对于接收端要忽略所有保留域段的值。
4.1 事务层
4.1.1 Prefixes
Prefixes是Header的扩展,和Header有着相同的域段,Prefixes可以省去,也可以有一个或者多个。
4.1.2 Header--属性
Fmt: Header的格式。
Type:当前Transaction的类型。
TC:传输服务的分类,可以实现差异化的传输服务。
LN:轻量级通知使能。
EP把指定位置Cacheline中的内容拷贝一份到本地,如果有设备更新了Cacheline中的这块内容,就会通知EP你关注的这条Cacheline已被更新,请停止使用你本地的备份。(这种做法主要是为了降低访问延时及带宽占用)
TH:指示Header中是否存在TPH域段。
TD:指示TLP中是否含有Digest。
EP:指示TLP内容是否已经损坏。
Attr[2] & Attr[5:4]:
AT:地址类型。
Length:数据的长度是多少DW。
Transaction ID: 由Requester ID和Tag组成Transaction ID,它是一个全局ID。
字节使能: 如果TH有效,THP域段生效(Last DW和1st DW),4位表示传输的第1个或最后一个DW的哪几位有效。(疑问?)
4.1.3 Header--地址
Transaction的路由规则有三种方式:基于地址、基于ID、隐式路由。
1)基于地址:
如果Fmt指示的是4DW,则有64位地址,否则32位地址。
2)基于ID:
通过Bus Number、Device Number、Function Number三个组合起来,来告诉Transaction要发往的目的地。
2)隐式路由:
如果是Message Request,它并不包含Header中并不包含具体的地址或者ID来指定Transaction发往的目的地,所以叫做隐式路由。
4.1.4 Payload
要传输的数据。
4.1.5 Digest
如果Header中的TD有效,会有一个DW的ECRC。
4.2 链路层
主要是为了确保TLP传输的可靠性,在TLP头部增加了序列号,在TLP尾部增加了校验。
Sequence Number:序列号,递增产生,达到最大值后翻转成0。
LCRC:Link层的CRC。
4.3 物理层
4.3.1 Logical Sub-Block
主要实现发送逻辑和接收逻辑。
发送逻辑:
- 根据速率选在8b/10b或128b/130b编码。
- 将要发送的数据根据lane的数量转换成对应的串行数据。
- 增加帧头帧尾,如下图(lane*4的场景)。
- 数据加扰。
接收逻辑:
与发送逻辑过程相反。
4.3.2 Electrical Sub-Block
主要实现差分信号的收发。
学习笔记: PCIe 4.0 协议(一)-- 概述相关推荐
- OpenHarmony学习笔记——I2C驱动0.96OLED屏幕
文章目录 前言 I2C简介 硬件连接 编程实现 创建代码框架 初始化并复用GPIO 初始化I2C0 初始化OLED 从机地址 OLED初始化配置 功能代码 总结 目录 前言 前面介绍了一些关于在Hi3 ...
- 【人工智能学习笔记】人工智能里的数学——概述
系列文章目录 [人工智能学习笔记]人工智能里的数学--概述 [人工智能里的数学]一元函数微分学 [人工智能里的数学]线性代数基础 [人工智能里的数学]多元函数微分学 前言 与软件开发相比,人工智能领域 ...
- Python学习笔记28:从协议到抽象基类
Python学习笔记28:从协议到抽象基类 今后本系列笔记的示例代码都将存放在Github项目:https://github.com/icexmoon/python-learning-notes 在P ...
- Java入门学习笔记——郝斌(一)概述及面向对象
Java入门学习笔记--郝斌 1.Java概述 java的起源和发展 java的特点 java的应用领域 java学习目标 环境变量的设置 为什么要设置path? path的设置 有关classpat ...
- 【计算机网络学习笔记07】PPP协议、IP编址、NAT技术
[计算机网络学习笔记07]PPP协议.IP编址.NAT技术 一.PPP协议 是TCP/IP网络中最重要的点到点的数据链路层协议. 1 PPP协议的组成 1)链路控制协议:建立并维护数据链路连接(身份验 ...
- 数据结构与算法学习笔记之 从0编号的数组
数据结构与算法学习笔记之 从0编号的数组 前言 数组看似简单,但掌握精髓的却没有多少:他既是编程语言中的数据类型,又是最基础的数据结构: 一个小问题: 为什么数据要从0开始编号,而不是 从1开始呢? ...
- Unity DOTS 学习笔记1 - ECS 0.50介绍和安装
Unity DOTS 学习笔记1 - ECS 0.50介绍和安装 为什么学习这个技术 ECS的全称为Entity Component System,是最早由暴雪在GDC2017上提出的一个新的游戏设计 ...
- 基于MVS的三维重建算法学习笔记(一)— MVS三维重建概述与OpenMVS开源框架配置
基于MVS的三维重建算法学习笔记(一)- MVS三维重建概述与OpenMVS开源框架配置 声明 1. MVS(Multi-view stereo)概述 稀疏重建与稠密重建的区别 稀疏重建--SFM(S ...
- 学习笔记之-Activiti7工作流引擎,概述,环境搭建,类关系图,使用Activiti BPMN visualizer,流程变量,组任务 网关,Activiti整合Spring SpringBoot
本篇学习笔记是观看黑马程序员Activiti7视频而得 Activiti7 一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是" ...
- Mr.J--HTTP学习笔记(一)-- HTTP简要概述
今天看了一本书<HTTP权威指南>,记录一下学习笔记,便于闲时阅读. HTTP HTTP 使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏 ...
最新文章
- layui列表显示缩略图_layUI实现列表查询功能
- MySQL安装教程,包含所有平台(图解)
- 认清SQL_Server_2005的基于行版本控制的两种隔离级别
- 界面设计语言_使用任何语言设计界面的提示
- 夺命雷公狗ThinkPHP项目之----企业网站2之数据库的快速设计
- java基础Runtime类的使用
- UNIX网络编程——使用线程的TCP回射服务器程序
- aws rds监控慢sql_如何使用Web控制台和AWS CLI停止AWS RDS SQL Server
- 如何使用python编程画图_【Python开发】使用python中的matplotlib进行绘图分析数据...
- mysql事件【定时器】
- 2020年度博客之星发榜了,第一次参加,第70名,感谢给我投票的老铁们,2021继续努力!
- OBS录制的时候黑屏怎么办
- 2021-11-09 jQuery常用方法及事件
- 英语音标中KK音标、IPA音标、DJ音标各是什么意思
- 今日芯声 | 每天徒步7公里找信号?印度不愧是开挂民族
- 非线性规划(二): Matlab 求解约束极值问题
- 李航《统计学习方法》第二版第一章-泛化误差
- 爬取汽车之家汽车品牌型号系列数据
- iuap助力中建五局打造数字化创新集成平台
- 狂神mysql笔记 md_MyBatis狂神总结笔记