admin 管理员组文章数量: 1086019
2024年1月10日发(作者:diva联盟)
pcie(PCI-Express)处理层协议中文详解
处理层协议(transaction Layer specification)
◆TLP概况。
◆寻址定位和路由导向。
◆i/o,memory,configuration,message request、completion详解。
◆请求和响应处理机制。
◆virtual channel(vc)Mechanism虚拟通道机制。
◆data integrity数据完整性。
一.TLP概况
处理层(transaction Layer specification)是请求和响应信息形成的基础。包括四种地址空间,三种处理类型,从下图可以看出在transaction Layer 中形成的包的基本概括。
一类是对i/o口和memory的读写包(TLPS:transaction Layers
packages),另一类是对配置寄存器的读写设置包,还有一类是信息包,描述通信状态,作为事件的信号告知用户。对memory的读写包分为读请求包和响应包、写请求包(不需要存储器的响应包)。而i/o类型的读写请求都需要返回I/O口的响应包,
configuration包对配置寄存器的读写请求也有响应包。这些请求包还可以按属性来分就是:NP-non posted ,即请求需要返回completion的响应包;还有一种就是;poste,即不需要completion返回响应包。例如上面的存储器写入请求包和Message包都隶属于posted包。包的主要格式结构如下:
每种类型的包都有一定格式的包头(Tlp Header),根据不同的包的特性,还包括有效数据负荷(Data Payload)和tlp开销块(Tlp Digest)。包头中的数据用于对包的管理和控制。有效数据负荷域存放有效数据信息。具有数据的TLP传递是有一定规则的:以DW为长度单位,发送端数据承载量不得超过“Device
Control Register”中的“Max_Payload_Size”数值,接收端中,所接收到的数据量也不能超过接收端“Device Control Register”中的“Max_Payload_Size”数值。TLp Digest域是32位的ECRC校验。具体的包结构图如下:
由此图可看出数据从低字节的高位先发送,从左到右。以下详细介绍TLPS的每个成分。
R为保留信息位,应设为0,路由器switch对此位不做修改,接收器应该忽略此位。
▲
Fmt[1:0]:Format of TLP (see Table 2-2) –
bits 6:5 of byte0
▲
Type[4:0]:Type of TLP – bits 4:0 of byte 0
▲
TC[2:0]:
Traffic Class – bits [6:4] of byte1,关于TC的作用将在下文说明。
▲
Attr[1:0]:
Attributes – bits [5:4] of byte 2,详细介绍见下文
▲
TD:1b indicates presence of TLP digest in
the form of a single DW at the end of the TLP标志TLPDigest域的有无。
▲
EP: indicates the TLP is poisoned – bit 6 of
byte 2有效数据中毒(出错)机制。
▲
Length[9:0]:Length of data payload in DW.
Fmt开销位说明TLP Header的长度和TLP是否包含数据,见下图。
▲
Fmt[1:0]=00b,代表3DW的包头,没有数据。
▲
Fmt[1:0]=01b,代表4DW的包头,没有数据。
▲
Fmt[1:0]=10b,代表3DW的包头,有数据。
▲
Fmt[1:0]=11b,代表4DW的包头,有数据。
Fmt和Type开销组合定义了包(TLP)的类型如下。
上图定义了各种类型的包,图中的r[2:0]用于定义Message包的隐含寻址方式,在下文中更为详细。
Length域定义了有效负荷的DW长度如下。
在不包含data payload块的包中Length的值应被设置为保留值R,并被接收端忽略。余下的各个开销位将在后文提到。
二.TLP打包定址和路由导向方式
主要有三种TLP寻址方式:地址路由(address)、ID识别路由、间接路由(implicit)。下面主要解释address和ID寻址方式,间接寻址将在后面提及。
address寻址主要用于memory和i/o request请求包,memory读写请求包支持64位地址和32位地址,i/o读写请求只支持32位地址。64位地址寻址的TLP Header有4DW(16字节),32位地址寻址的TLP Header有3DW长。
上图就是64位地址的4DW的包头和32位地址的3DW的包头。对于memory读写request包,AT(address Type field)有如下的编码。
ID寻址方式主要用在configuration 请求包、部分message包、响应包中。ID包括Bus number、Divce number、function number
为TLP定位目标接收器。ID寻址的TLP包头长度也有4DW和3DW两种,ID在TLP中位置见下图。
第七个Byte(Byte7)是第一个DW数据负荷和最后一个DW数据负荷使能位(Byte Enables),Byte Enables在于memory,i/o,configuration 请求包中有效,如图。
对于last DW BE和1st DW BE中的每一个位,为0表示相应的数据字节不被读或写,为1表示相应的数据字节有效。每个使能位相对应的字节如下。
处理层描述符(transaction Descriptor),用于请求器件和应答器件间转送处理层信息,包括三部分,Transaciton ID、Attributes、Traffic class(TC)。如下图。
其中Transaction ID包括: Requester ID、Tag,如图。
Tag[7:0]是由产生请求包的器件生成的,如果请求器件需要应答,则每个Tag[7:0]和Function Number是独一无二的。Transaction ID是一个全局标识符用于响应包寻址请求器件。
TC的规定如下,描述服务的层次和用于映射虚拟通道:
处理层描述符在请求包中第二个DW:
。中图中看出,描述字符放在第二个DW的前三个字节中。
三.i/o,memory,configuration,message request、completetion详解。
memory、i/o、configuration request包头除了基本的域之外还包括:Transaction ID即requester ID、Tag、Last DW BE、1st DW
BE,放在第二个DW中。以下分别介绍这三种不同的请求包。
memory request package:
采用直接地址寻址,有64bit地址和32bit地址两种,其中读请求
包的Length域不应大于Max_Read_Request_Size寄存器设置的值。请求器件不会示例一个所访问的memory空间超过4KB的read request包。以下是两种不同地址长度的memory request 包。
I/O request 包:
I/O request 包只有32位地址寻址。有如下限制:
▲
TC[2:0] must be 000b
▲
Attr[1:0] must be 00b
▲
AT[1:0] must be 00b
▲
Length[9:0] must be 00 0000 0001b
▲
Last DW BE[3:0] must be 0000b
格式如下:
可见每次只传送一个DW数据。
configuration request包:
configuration request包采用ID寻址方式,包头(Tlp
Header长度是3DW)。有如下规定:
• TC[2:0] must be 000b
• Attr[1:0] must be 00b
• AT[1:0] must be 00b
• [9:0] must be 00 0000 0001b
• Last DW BE[3:0] must be 0000b
包格式:
Message 包:
Message包分为:
版权声明:本文标题:pcie处理层协议中文详解 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1704875857a465346.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
更多相关文章
数据猿·金猿榜丨2017中国医疗大数据领域最具潜力创业公司
【数据猿导读】 “2017中国医疗大数据领域最具潜力创业公司”盘点源于数据猿推出的“金猿榜”系列内容,旨在通过媒体的方式与原则,发掘大数据领域最具潜力的创新型企业 编辑 | sharon 官网 |
路由器数据转发原理
1.知识储备 1.1 TCPIP四层模型 当前互联网上的应用都是基于TCPIP协议来运作的,其分层的模型非常有利于互联网应用的开发。对于TCPIP四层模型来讲,其中第二、三层(网间层和传输层)是由内核进行处理,第四层由应用程序进行处
浩宇摘星卫星影像下载软件- Landsat9 数据下载
Landsat 9于2021年9月27日发射,并于2022年2月10日起开始对公众提供数据服务。 目前,浩宇摘星卫星影像下载软件提供Landsat 9 Collection2数据的下载&
水文气象学数据可视化——Panoply软件的下载
Gribnc文件的读取 一、准备1.Java运行环境的安装2.Panoply软件的安装: 二、Panoply的使用1.打开文件2.绘制图形3.保存图片 四、推荐链接 Ps:有很多方法可以打开该文
ZYNQ进阶之路14--PS端uart串口接收不定长数据
ZYNQ进阶之路14--PS端uart串口接收不定长数据 导语ZYNQ串口简介实现步骤 导语 繁忙的博主又来了,本节我们实现一个比较简单的东西:串口。之前的章节中我们也有使用PS端的串口进行收发
手机 & 电脑数据,这样删除才彻底!
恢复出厂设置后数据还在吗?格式化真的彻底吗?数据到底该怎么删? 文章目录 前言为什么不能彻底删除数据?手机如何彻底删除数据?第一步
下载HuggingFace模型和数据集(免翻墙)
首推 huggingface 镜像站: https:hf-mirror 。 首推工具:官方的 huggingface-cli 命令行工具 这个知乎博主总结的很全面 如何快速下载hugging
ChatGPT 数据分析与处理使用详解
### ChatGPT在数据分析与处理中的使用详解 在当今信息爆炸的时代,数据分析和处理已成为各行各业不可或缺的重要技能。随着人工智能技术的快速发展,ChatGPT作为一种强大的自然语言处理工具
Win11如何关闭个人数据跨境传输功能
Win11如何关闭个人数据跨境传输功能 在近期,一些用户在更新Windows 11系统后遇到了一个提示:“同意个人数据跨境传输”。这一功能原本是微软为了保护用户数据安全,防止个人数据在不同设备之间自动传输和同步而推出的一项措施。然而,对于
为何excel中数据无法计算机,电脑excel表格数据改不了-Excel单元格里面的数字改不动怎么办...
如何让excel表格中的数据不允许修改 不能修改excel表格中的数据的问题 为什么在EXCEL表格中不能更改数据 EXCEL软件本身出现了一些漏洞,解决办法: 1、单击“office”。 2、在弹出的下拉菜单中&am
常用免费DEM数据汇总(含下载使用方法)
本篇文章介绍几个免费的DEM,分辨率有1km、90m、30m、12.5m,不是说分辨率越高越好,这得看应用场景的每个数据还是分数据简介、网站链接、下载方法、使用方法4个方面说明 一、全球海陆数据库 1.数据简介: The GEBCO_2
影刀---实现我的第一个抓取数据的机器人
你们要的csdn自动回复机器人在这里文末哦! 这个上传的资源要vip下载,如果想了解影刀这个软件的话可以私聊我,我发你 目录 1.网页对象2.网页元素3.相似元素组4.元素
CDO(气象数据处理软件)安装的坑总结
由于科研需要,我用到的是CMIP6数据,需要对数据进行合并、插值等操作,用到的模式很多,在python上处理不太方便,所以就用cd
使用Charles抓包Android App数据
版权归作者所有,如有转发,请注明文章出处:https:cyrus-studio.github.ioblog 抓包环境准备 1. 下载安装charles charl
卷王指南,大学计算机专业,面临分专业,计科,软工,大数据,物联网,网络工程,该选什么?
同学们好,我是王老师——二哥呀!(笑喷) 好巧!前几天有同学私信问过我这个问题:大学计算机专业&#
元数据管理系统
数据治理工具–元数据系统数据服务基础能力之元数据管理元数据管理系统设计 1.元数据概述 1.1 介绍 如果想建设好元数据系统,需要理解元数据系统的相关概念,如数据、数据模型、元数据、元模型、
安卓OKhttp请求接口数据失败,postman也失败,用浏览器却能正常请求数据
实现需求的时候用OKhttp请求数据一直报服务器500错误,用postman请求也是这样,但是拼接后的网址放浏览器中却能得到json数据…后面代码,postman都换get请求也是失败,最后又排查了各种问题.没有结果问了后端大佬… 加上请求
【mysql解决办法】insert into select 想插入的数据如果部分为空怎么办?
简述 一开始,真的没想到这么简单。 期末数据默认就为NULL,所以,插入的时候,不要管就好了。 比如,我下面要插入的数据中&a
Linux网络之数据链路层协议
目录 数据链路层 MAC地址与IP地址 数据帧 ARP协议 NAT技术 代理服务器 正向代理 反向代理 上期我们学习了网络层中的相关协议,为IP协议。IP协议通过报头中的目的IP地址告知了数据最
ROS开发之如何将树莓派采集的雷达、IMU数据在虚拟机rviz中显示?
文章目录 0.前言1.获取IP和计算机名2.配置hosts文件3.配置.bashrc文件4.测试数据显示 0.前言 树莓派是小型计算机,可以作为移动机器人的控制器,随机器人运动࿰
发表评论