PCIe进阶之TL:Request Handling Rules

devtools/2024/9/24 2:00:40/

1 Handling of Received TLPs

本节介绍接收到的 TLP 在数据链路层经过完整性验证之后,这些 TLP 在事务处理层时的处理方式。这些规则如下图所示:
在这里插入图片描述

  • 接收侧会忽略保留字段。
  • 如果 Fmt 字段显示存在至少一个 TLP Prefix :
    (1)通过检查后续 DWORD 的第一个字节中的 Fmt 字段,直到 Fmt 字段与 TLP Prefix 的字段不匹配,来检测 header 中是否存在其他 TLP Prefix。(每个 TLP Prefix 为一个 DWORD 长度。)
    (2)按照TLP Prefix处理规则来处理该TLP。
  • 如果 Extended Fmt Field Supported 字段设置为 1,则收到的 Fmt 和 Type 字段编码为保留值的 TLP 是 Malformed TLP。
  • 如果 Extended Fmt Field Supported 字段设置为 0,则收到的 Fmt[2]为 1 的 TLP 的处理方式未定义。
  • 收到的 Fmt[2]为 0,且 Type 字段为保留值的 TLP 为 Malformed TLP。
  • 收到的 TLP 为 Malformed TLP,则该 TLP 被丢弃。
    (1)如果接收到的 Malformed TLP 导致不知道释放哪个缓冲区,也不知道怎么映射到未初始化的虚通道,则必须要丢弃且不更新接收侧的流控制信息。
    (2)必须丢弃所有其他类型的 Malformed TLP,可以选择不更新接收侧的流控制信息。
  • 否则,更新流控制更新逻辑。
  • 如果 Type 字段中的值指示 TLP 是个 Request,请按照Request Handling Rules进行处理;否则,收到的 TLP 是一个 Completion,请按照Completion Handling Rules进行处理。
    PCIe Switch 必须能处理寻址 Switch 本身的 TLP与寻址 Switch 挂接的设备的 TLP。Switch 根据上述规则处理所有寻址 Switch本身的 TLP。根据以下规则处理通过 Switch 的 TLP:
    在这里插入图片描述
  • 如果收到的 TLP 的 Type 字段显示该 TLP 不是 Msg 或 MsgD 请求,则该 TLP 按照 Routing and Addr

http://www.ppmy.cn/devtools/116267.html

相关文章

408算法题leetcode--第七天

283. 移动零 283. 移动零思路&#xff1a;代码中注释阐述时间&#xff1a;O(n)&#xff1b;空间&#xff1a;O(1) class Solution { public:void moveZeroes(vector<int>& nums) {// 简单思路&#xff1a;用一个辅助数组&#xff0c;将非0元素复制到里面// 双指针&…

設置Android設備全局代理

全局代理是指在設備上設置一個代理伺服器&#xff0c;使所有的網路請求都通過這個代理伺服器進行轉發。這樣&#xff0c;無論你使用的是哪款應用&#xff0c;所有的網路流量都會經過代理伺服器&#xff0c;從而實現統一的網路訪問控制和隱私保護。 配置Wi-Fi網路代理 在Andro…

【已解决】键盘输入数字-使用JAVA语言实现键盘输入的数字再通过快速排序算法输出

文章目录 一、前言任务描述相关知识分治策略&#xff1a;编程要求测试说明 二、具体代码实现总结 一、前言 —快速排序 任务描述 在待排序的n个元素中任取一个元素&#xff08;通常取第一个元素&#xff09;作为基准&#xff0c;把该元素放入最终位置后&#xff0c;整个数据序…

spring怎么识别拦截器 异常处理器

Spring框架中识别和调用拦截器&#xff08;Interceptor&#xff09;和异常处理器&#xff08;HandlerExceptionResolver&#xff09;是通过容器内部的组件扫描和自动装配机制来完成的。 拦截器&#xff08;Interceptor&#xff09;: Spring MVC 的拦截器必须实现 HandlerInte…

Spring Boot-应用启动问题

在使用 Spring Boot 进行开发时&#xff0c;应用启动问题是开发人员经常遇到的挑战之一。通过有效排查和解决这些问题&#xff0c;可以提高应用的稳定性和可靠性。 1. Spring Boot 启动问题的常见表现 Spring Boot 应用启动失败通常表现为以下几种情况&#xff1a; 应用启动…

QT----基于QML的计时器

赶上了实习的末班车,现在在做QML开发,第一天的学习成果,一个计时器.逻辑挺简单的,纯QML实现,代码在仓库QT-Timer 多线程优化 在使用的过程中发现自己的计时器时间会慢,并且一直点击记录的话时间1s可以走10s,排查发现是在计时器的间隔取得太小了,取了1太过于消耗资源,改成10的…

【QT基础】创建项目项目代码解释

目录 前言一&#xff0c;使⽤Qt Creator 新建项目1. 新建项目2. 选择项⽬模板3. 选择项⽬路径4. 选择构建系统5. 填写类信息设置界⾯6. 选择语⾔和翻译⽂件7. 选择Qt套件8. 选择版本控制系统9. 最终效果 二&#xff0c;项目代码说明1. main.cpp文件2. Widget.h文件3. Widget.cp…

大数据系统调优:从DAG到单机

目标&#xff1a;优化T10的时效性全局DAG调度层优化&#xff1a;提前任务开始时间&#xff1a; 1. 优化慢结点&#xff1a;T10依赖了T4,T7,T8, 其中T8为瓶颈&#xff0c;如果T8能提前点完成&#xff0c;T10可以早点开始&#xff0c;就能早点完成 2. 快结点做更多预计算…