PCIe 6.0为什么需要14-bit tag

1.TLP中的tag是什么   

在PCIe TLP(Transaction Layer Packet)中,tag是分配给特定Non-Posted Request的编号,协议要求CPL/CPLD中的tag 与对应non-post request TLP中的tag保持一致,因此Requester可以使用tag来识别CPL/CPLD是哪个请求对应的完成报文。

图片

图片

图1 memory请求头格式

如图1(PCIe 5.0协议图2-17和图2-18)所示,当时使用10-bit tag时,{T9,T8,Tag[7:0]}组成10-bit tag。  

2.tag size 随着PCIe速率的变化  

如果tag数量不足时,则function不允许发送Non-Posted Request,直到之前发起的Non-Posted Request对应的CPL/CPLD返回完成tag回收。

随着PCIe速率的提升,为了能够发挥最佳性能,tag size不断在增加,从8-bit tags、10-bit tags增加到14-bit tags。

          

PCIe 版本

可使用的最大tag size

PCIe 1.0

8-bit tags

PCIe 2.0

8-bit tags

PCIe 3.0

8-bit tags

PCIe 4.0

10-bit tags

PCIe 5.0

10-bit tags

PCIe 6.0

14-bit tags

PCIe 6.0 速率提升到64GT/s,为了保证PCIe系统中实现最佳性能,设计人员需要不同round trip time (RTT)的场景下评估所需的outstanding non-posted requests (NPR)最大数量。round trip time (RTT)即往返时间,是PCIe设备从发起non-posted requests开始到接收到CPLD/CPL的时间间隔。随着RTT的增加,必须保证有足够的outstanding non-posted requests,否则数据路径将会存在空拍气泡,无法保证最佳性能。    

图2描述了PCIe 4.0, 5.0 and 6.0 在不同round-trip times场景中所需要的tag数量。例如,在RTT为1000ns,16Lane的场景中,Gen4 所需要的tag数量大于10-bit tag limit(768),而在此场景中,Gen4所需要的tag数量大于3500。

可能有同学会说PCIe链路本身的延时并不大,远远不到1000ns,是的如果仅仅考虑PCIe 物理层、链路层、事务层的逻辑确实延时有限,在200ns以内。但是考虑到多级PCIe Switch转发延时,主机内部存储读取延时,MMC地址转换延时等等,平均RRT时间会明显大于200ns。

图片

图2 Number of tags needed to achieve maximum throughput for PCIe 4.0 through PCIe 6.0 links      

3.tag size的使用要求  

对于tag size的使用,PCIe 6.0提出了明确的要求:

l所有的function必须支持8-Bit Tag Completer capability.

l支持16.0 GT/s及其以上速率的function必须支持10-Bit Tag Completer capability.

l支持14-Bit Tag Requester capability的前提是必须支持14-Bit Tag Completer capability.

l支持10-Bit Tag Requester capability的前提是必须支持10-Bit Tag Completer capability.

l14-Bit Tags,Tag[13:8]等于6’b0是不合法的数值,Tag[13:8]不等于6’b0是合法数值,即Requester不允许使用数值为0~255的tag。

l10-Bit Tags,Tag[9:8]等于2’b0是不合法的数值,Tag[9:8]不等于2’b0是合法数值,即Requester不允许使用数值为0~255的tag。    

          

4.tag size相关的配置寄存器  

8-Bit Tags和10-Bit Tags相关的配置寄存器均在PCI Express Capability Structure中,而14-Bit Tags相关的配置寄存器均Device 3 Extended Capability Structure中。

相关字段详细描述见本章节截图(截图来自PCI Express® Base Specification Revision 6.2 )

4.1.Extended Tag Field Supported  

图片

图片

4.2.Extended Tag Field Enable  

图片

          

图片

    

4.3.10-Bit Tag Completer Supported 与10-Bit Tag Requester Supported

图片

  

图片

4.4.10-Bit Tag Requester Enable  

图片

图片

4.5.14-Bit Tag Completer Supported 与14-Bit Tag Requester Supported  

              

图片

          

图片

图片

图片

4.6.14-Bit Tag Requester Enable  

图片

图片

    

5.不同tag size的组合  

图片

表2-11显示了三个标签使能位如何确定不同Completers和其相关路径的最大tag大小和允许的标签值范围。对于给定的tag使能设置组合,Requester必须使用在完成者和其相关路径的标签能力对应的允许范围内的标签值。

l当前14-bit Tag Requester Enable、10-bit Tag Requester Enable 、Extended Tag Field Enable分别为0、0、0时,最大tag size为5,此时Requester发送TLP时能使用的tag 范围为0~31

l当前14-bit Tag Requester Enable、10-bit Tag Requester Enable 、Extended Tag Field Enable分别为1、1、1时,最大tag size为14bits,如果使用8-bit Tag,则Requester发送TLP能使用的tag 范围为0~255,如果使用10-bit Tag,则Requester发送TLP能使用的tag 范围为256~1023,如果使用14-bit Tag,则Requester发送TLP能使用的tag 范围为1024~16383,

在表格2-11中可以看出,当存在多个Tag Requester Enable为1时,协议将tag范围进行了划分,其中0~255划分给了8-bit Tag,其中256~1023划分给了10-bit Tag,其中1024~16383划分给了14-bit Tag。此种设计的优点很明显,Requester发送memrd请求后收到CPLD时,能够根据CPLD的tag数值判断CPLD是否有效。例如Requester使用的是14-bit Tag,允许的tag 范围为1024~16383,协议要求Completer返回的CPLD中的tag与memrd中的tag保持一致,但是收到的CPLD数值小于1023,此时判断CPLD无效。          

6.参考文档 

PCIe 6.0 Designs at 64GT/s with IP | DesignWare IP | Synopsys

PCI Express® Base Specification Revision 6.2

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows通过命令查看mac : getmac

要查看本机网卡mac,可以通过ipconfig /all 显示,但输出内容过多 可以通过getmac命令查看 示例 C:\Users\Desktop> getmac物理地址 传输名称暂缺 没有硬件 1C-1B-B5-04-E2-7D \Device\Tcpip_{80096E40-D51D-490C-9AF7-…

Java 扫雷游戏

程序分析 使用Java编写的扫雷游戏界面程序,主要内容总结如下: Frame类继承自JFrame,构建了扫雷游戏的界面。 包含文本框text、标签nowBomb和setBomb、按钮start、面板MenuPamel和bombPanel等组件。通过jbInit方法进行初始化设置,…

note24:表分区规范

目录 分区设计原则 分区维护 存储方式及分布键规范 分区设计原则 表分区用于解决数据量特别大的表的问题,比如事实表,解决办法就是将表分成很多小且更容易管理的部分。 表分区参考以下几个原则 (1)表是否足够大?…

免费【2024】springboot 趵突泉景区的智慧导游小程序

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

MATLAB基础:数组

今天我们继续学习MATLAB中的数组 我们在学习MATLAB时了解到,MATLAB作者秉持着“万物皆可矩阵”的思想企图将数学甚至世间万物使用矩阵表示出来,而矩阵的处理,自然成了这门语言的重中之重。 数组基础 在MATLAB中,数组是一个基本…

十、SpringBoot 统⼀功能处理【拦截器、统一数据返回格式、统一异常处理】

十、SpringBoot 统⼀功能处理 1. 拦截器【HandlerInterceptor、WebMvcConfig】1.1 拦截器快速⼊⻔⾃定义拦截器:实现HandlerInterceptor接⼝,并重写其所有⽅法注册配置拦截器:实现WebMvcConfigurer接⼝,并重写addInterceptors⽅法…

堆(c++)

堆是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。 堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。 常见的堆有二叉堆、斐波那契堆等。 堆是非线性数据结构&#…

初识C++ · map和set的使用

目录 前言: 1 set 2 map 前言: 在前面阶段,我们已经学习了stl里面的部分容器,比如vector,list,deque等,这些容器都被称为序列式容器,也就是每个值之间式没有关联的,那么今天介绍的容器&…

【笔记本触摸屏】超级好用技巧

选中文字:点一下要复制的文字开头,按住shift键不放,然后点一下你想要的文字结尾滚动:双指向 水平 或者 垂直 方向滑动放大或者缩小: 将两个手指放在触摸板上,让后收缩后者拉伸显示更多命令(类似于右键单击&…

四十九、 通过境内数据交易所进行跨境数据贸易应考虑哪些跨境数据合规问题?

根据中国信通院数据显示,2023 年我国数字经济规模可达 56.1 万亿元, 数字经济占 GDP 比重接近于第二产业,占国民经济的比重,达到 40%以上。伴随数字技术兴起以及各项数字经济相关的政策和法律的落地,以跨境数据流动为底层支撑的跨…

智能音箱和普通音箱有什么区别

智能音箱和普通音箱在多个方面存在显著的区别,主要包括设计目的、功能特点、连接方式、音质表现以及交互方式等。 一、设计目的和功能特点 智能音箱:设计目的不仅仅是为了播放音乐,更重要的是集成了语音识别和语音交互功能,成为…

IGV.js | 载入自己下载的gtf文件

1.安装 htslib-1.20 https://www.htslib.org/doc/tabix.html J3$ cd ~/Downloads/ $ wget https://github.com/samtools/htslib/releases/download/1.20/htslib-1.20.tar.bz2 $ tar jxvf htslib-1.20.tar.bz2编译安装: $ cd htslib-1.20/ $ ./configure --prefix/…

ts -> class -> abstract

在TypeScript中,你可以直接使用abstract关键字来定义抽象类和抽象方法。抽象类不能被实例化,而抽象方法必须在派生类中被实现。以下是一个具体的例子: abstract class Animal {name: string;constructor(name: string) {this.name name;}//…

C#中的Action

C#中的Action是一种委托类型,‌用于引用不返回值的方法。‌Action可以接受0到16个参数,‌并且不返回任何值。‌它是一种通用的委托类型,‌非常方便用于处理不同参数和不同函数签名的情况。‌Action的用法包括声明Action委托类型、‌创建Actio…

vue的三大核心知识点

响应式: 监听data属性getter setter(包括数组)模板编译: 模板到render函数再到vnodevdom: patch(elem, vnode)和patch(vnode, newVnode) vue组件初次渲染过程 解析模板为render函数(或在开发环境已完成,vue-loader&a…

WIX Toolset 3.11 对本地化的支持方案

1.准备主题文件和本地化文件 WIX Toolset种主题文件为xml文件,负责配置控件的布局, 本地化文件为wxl文件,负责配置待加载的字符串,主题文件根据ID加载需要显示的文字内容。考虑到英文和中文字符长度大小不一,所以这里…

渗透测试——prime1靶场实战演练{常用工具}端口转发

文章目录 概要信息搜集 概要 靶机地址:https://www.vulnhub.com/entry/prime-1,358 信息搜集 nmap 扫网段存活ip及端口 找到除了网关外的ip,开放了80端口,登上去看看 是一个网站,直接上科技扫一扫目录 python dirsearch.py -u …

尝试带你理解 - 进程地址空间,写时拷贝

序言 在上一篇文章 进程概念以及进程状态&#xff0c;我们提到了 fork 函数&#xff0c;该函数可以帮我们创建一个子进程。在使用 fork 函数时&#xff0c;我们会发现一些奇怪的现象&#xff0c;举个栗子&#xff1a; 1 #include <stdio.h>2 #include <unistd.h>3 …

跟《经济学人》学英文:2024年07月20日这期 The Russell 2000 puts in a historic performance

Why investors have fallen in love with small American firms The Russell 2000 puts in a historic performance 罗素2000指数&#xff1a; 罗素2000指数&#xff08;英语&#xff1a;Russell 2000 Index&#xff09;为罗素3000指数中收录市值最小的2000家&#xff08;排序…

Linux 常用命令详解:从基础操作到进阶应用

Linux 常用命令详解&#xff1a;从基础操作到进阶应用 简介 Linux 是一个强大且灵活的操作系统&#xff0c;它在服务器、开发环境和个人计算机中得到了广泛的应用。Linux 的命令行界面提供了丰富的工具和命令&#xff0c;可以帮助用户高效地管理系统、处理文件、监控性能和进…