【PCIe】TLP结构与配置空间

在这里插入图片描述

🔥博客主页:PannLZ

文章目录

      • PCIe TLP结构
      • PCIe配置空间和地址空间


PCIe TLP结构

在这里插入图片描述

TLP 主要由3个部分组成: Header 、 数据(可选,取决于具体的TLP 类 型 ) 和 ECRC (End to End CRC, 可选)。TLP 都始于发送端的事务层,终于接收端的事务层。

每个 TLP 都有一个 Header 。 事务层根据上层请求内容,生成 TLP Header Header 包括 发送者的相关信息、目标地址(该 TLP 要发给谁)、TLP 类型(诸如前面提到的内存读、内 存写)、数据长度(如果有数据的话)等。

ECRC 域为之前的 Header 和数据(如果有的话)生成一个CRC, 在接收端根据收到的 TLP 重新生成 Header 和数据(如果有的话)的CRC, 与收到的 CRC 比较, 一样则说明数据 在传输过程中没有出错,否则就有错。

TLP Header的公共部分各项内容:

  • Fmt : Format, 表明该 TLP是否带有数据,Header 是 3 DW 还是4 DW。
  • Type : TLP 类型,包括内存读、内存写、配置读、配置写、消息和响应等。 口 R : Reserved, 等于0。
  • TC: Traffic Class,TLP也分三六九等,优先级高的先得到服务。TC : 3 bit 说明可以 分为0~7这8个等级,TC 默认是0,数字越大,优先级越高。
  • Attr : Attribute, 属性,前后共三个位。
  • TH : TLP Processing Hints(处理提示)。
  • TD : TLP Digest,之前说 ECRC可选,如果这位被设置,则说明该 TLP包含 ECRC, 接收端应该做 CRC校验。
  • EP: “有毒”的数据,应远离。
  • AT : Address Type,地址种类。
  • 长度: Payload 数据长度,10位,最大为1024,单位为DW, 所以 TLP最大数据长 度是4 KB。该长度总是为DW 的整数倍,如果TLP 的数据不是 DW的整数倍(不是 4 B 的整数倍),则需要用到 Last DW BE和 1st DW BE这两个域。

TLP 格式和类型域编码:

TLPFm t域Type域说 明
Memory Read Request(内存读请求)000=3 DW,不带数据 001=4 DW,不带数据00000内存读不带数据,其Header大小为 3 D W 或 4 D W
Memory Write Request(内存写请求)010=3 DW,带数据 011=4 DW,带数据00000内存写带数据,其Header大小为 3 D W 或 4 D W
Configuration Type 0 Read Request (Type 0配置读请求)000=3 DW,不带数据0.0100读终端的配置,不带数据,Header 总是为3 DW
Configuration Type 0 Write Request (Type 0配置写请求)010=3 DW,带数据00100写终端的配置,带数据,Header总 是为3 DW
Configuration Type 1 Read Request (Type 1配置读请求)000=3 DW,不带数据00101读交换机的配置,不带数据,Header 总是为3 DW
Configuration Type 1 Write Request (Type 1配置写请求)010=3 DW,带数据00101写交换机的配置,带数据,Header 总是为3 DW
Message Request(消息请求)001=4 DW,不带数据1 0rrr消息的Header总是为4 DW
Message Request with Data(带数据 的消息请求)011=4 DW,带数据1 0rrr消息的Header总是为4 DW
Completion(响应)000=3 DW,不带数据01010响应的Header总是为3 DW
Completion with Data(带数据的晌应)010=3 DW,带数据01010响应的Header总是为3 DW

PCIe配置空间和地址空间

每个 PCIe 设备都有这样一段空间:主机软件可以通过读取它获得该设备的一些信息 也可以通过它来配置该设备。这段空间被称为PCIe 的配置空间。

PCI 或者 PCI-X 时代就有配置空间的概念,当时整个配置空间就是一系列寄存器的集合,由两部分组成:64 B的 Header 和192 B的 Capability(能力)数据结构。进入PCIe时代,PCIe能耐更大,192 B不足以罗列它的绝活。为了保持后向兼容,又 不把绝活落下,把整个配置空间由256 B 扩展成4 KB, 前面256 B 保持不 变。

配置空间的Header中很重要的是BAR(Base Address Register, 基址寄存器)。终端配置 (Type 0) 最多有6个BAR, 交换机 (Type 1) 只有2个。

CPU 如果想访问某个设备的空间,让RC 去办。例如:如果CPU 想读 PCIe设备的数据,先让RC 通过TLP 把数据从PCle 设备读到主机内存,然后CPU 从主机 内存读数据;如果CPU 要往PCle 设备写数据,则先把数据在内存中准备好,然后让RC 通 过TLP 将其写人PCle 设备。

具体实现就是上电的时候,系统把 PCle 设备开放的空间(系统软件可见)映射到内存 地址空间,CPU 要访问该PCIe 设备空间,只 需访问对应的内存地址空间。RC 检查该内 存地址,如果发现该内存地址是某个PCle 设 备空间的映射,就会触发其产生TLP 去访问 对应的PCle 设备,从而实现读或者写PCIe 设备.

设备出厂时, 这些空间的大小和属性都写在配置BAR 寄存器里面。上电后,系统软件读取这些BAR, 并 分配对应的系统内存地址空间,然后把相应的内存基地址写回BAR 。

(BAR 的地址其实是 PCI 总线域的地址, CPU 访问的是内存地址。CPU 访问PCle 设备时,需要把总线域地址转 换成内存地址。)

上电时,系统软件首先会读取 PCle设备的BAR 0, 得到数据,然后系统软 件往该BAR 0中写入全1,BAR 寄存器有些位是只读的,是PCIe设备在出厂前就固定好的,写全1进去,如果值保持不变,就说明这些位是厂家固化好的。这些固化好的位提供了这块内部空间的一些信息。

XXXX XXXXXXXX XXXX XXXX000000000000

低4位用于表明该存储空间的一些属性,比 如是/O 映射还是内存映射

一个PCIe 设备可能有若干个内部空间需要开放 出来,系统软件依次读取 BAR 1 、BAR 2 , 直到BAR 5, 完成所有内部空间的映射。

一个PCIe 设备 可能具有多个功能,比如硬盘功能、网卡功能 等,每个功能对应一个配置空间。

在整个 PCle 系统中,只要知道了总线序号、设备序号和功能序号,就能找到唯 一的功能。寻址基本单元是功能,它的ID 由总线、设备、功能(BDF) 组成。

这节详细的推荐看书《深入浅出SSD:固态存储核心技术、原理与实战(第2版)》。

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

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

相关文章

乐得瑞的一拖二100W智能分配方案更加成熟

在快节奏的现代生活中,手机不仅是通讯工具,更是我们工作、学习和娱乐的得力助手。然而,手机的电量问题一直是困扰我们的难题。为了解决这一问题,市场上应运而生了一种名为“一拖二快充线”的充电设备。它集快速充电与独特设计于一…

基于STM32的展馆火灾监控系统的设计与实现

自从人类学会用火后,火灾就开始伴随人类了,几千年来火灾对人类造成的损失不可谓不大,但究其原因,除了人为纵火、放火之外,其他火灾都是在人们没有注意或没有检测到才产生的,所以防火的重要方面仍是防患于未…

蓝桥杯每日一题:烤鸡dfs

这道题考察了dfs的应用,题干十分有趣,思考过程对以后类似题目也有很强的参考性,一起来学习吧! 题目: # 烤鸡 ## 题目背景 猪猪 Hanke 得到了一只鸡。 ## 题目描述 猪猪 Hanke 特别喜欢吃烤鸡(本是同畜…

本鲸多方位助力创业者高效对接创新创业机遇

在科技创新的浪潮中,创业者们不断探索着新的商业机会,寻求着创新创业的道路。然而,面对复杂多变的市场环境和激烈的竞争压力,如何高效对接创新创业机遇成为了摆在创业者面前的重要课题。 本鲸依托海南本鲸投资有限公司和重庆本鲸…

Leetcode - 周赛387

目录 一,3069. 将元素分配到两个数组中 I 二,3070. 元素和小于等于 k 的子矩阵的数目 三,3071. 在矩阵上写出字母 Y 所需的最少操作次数 四,3072. 将元素分配到两个数组中 II 一,3069. 将元素分配到两个数组中 I 本…

给一篇word注音可不可以只要拼音不要汉字 word中如何只保留拼音不要汉字

word中如何只保留拼音不要汉字,如果你想要只保留拼音而去除汉字,可以通过一系列步骤来实现。以下是一个详细的教程,帮助你完成这个任务。 首先,确保你的电脑已经安装了“汇帮注音大师”软件。如果没有,你需要安装一下…

异常-Exception

文章目录 异常-Exception常见的运行时异常NullPointerException(空指针异常)ArithmeticException(数学运算异常)ArrayIndexOutOfBoundsException(数组下标越界异常)ClassCastException(类型转换…

面试经典150题——两数相加

​Anything is worth "fighting for," and when you get it, dont doubt it, you deserve it, you deserve it. 1. 题目描述 2. 题目分析与解析 2.1 思路一 这个题目虽然标的是中等,但是大家看一下应该还是比较容易想到思路的,这不就相当于…

储能系统---交流充电桩(三)

一、充电模式及其功能要求 关注公众号 --- 小Q下午茶 新国标在标准 GB/T 18487.1-2015《电动汽车传导充电系统 第1部分:通用要求》中规定了 4 种充电模式,下面将对这 4 种充电模式及其功能要求进行介绍。 1.1 、模式 1 模式 1 是指在充电系统中应使用…

《解密云计算:企业之选》

前言 在当今数字化时代,企业面临着巨大的数据处理压力和信息化需求,传统的IT架构已经无法满足日益增长的业务需求。在这样的背景下,越来越多的企业开始转向云计算,以实现灵活、高效和可扩展的IT资源管理和利用。 云计算 云计算是…

群智能优化算法:巨型犰狳优化算法(GAO)求解23个基准函数(提供MATLAB代码)

一、巨型犰狳优化算法 巨型犰狳优化算法(Giant Armadillo Optimization,GAO)由Omar Alsayyed等人于2023年提出,该算法模仿了巨型犰狳在野外的自然行为。GAO设计的基本灵感来自巨型犰狳向猎物位置移动和挖掘白蚁丘的狩猎策略。GAO…

同等学力申硕专业介绍——管理学硕士

同等学力申硕的专业很多。 目前有十三大门类,分别是医学、法学、管理学、工学、教育学、经济学、艺术学、文学、历史学、理学、哲学、农学、军事学等,每个大门类中都有很多的细分专业。 今天为大家介绍同等学力申硕专业——管理学。 专业介绍 管理学是…