当前位置: 首页 > news >正文

PCIE协议-1

1. PCIe结构拓扑

一个结构由点对点的链路组成,这些链路将一组组件互相连接 - 图1-2展示了一个结构拓扑示例。该图展示了一个称为层级结构的单一结构实例,由一个根复合体(Root Complex, RC)、多个端点(I/O设备)、一个交换机以及一个PCI Express到PCI/PCI-X桥接器组成,所有这些都通过PCI Express链路互相连接。

1.1 根复合体

  • 根复合体(RC)表示输入/输出(I/O)层级结构的根,它连接了CPU/内存子系统和I/O。如图1-2所示,一个RC可能支持一个或多个PCI Express端口。每个接口定义了一个单独的层级域。每个层级域可能由单个端点组成,或者包含一个或多个交换机组件和端点的子层级结构。
  • 通过RC在层级域之间路由对等事务的能力是可选的,并且取决于具体实现。例如,一个实现可能在根复合体内部整合一个真实或虚拟的交换机,以软件透明的方式启用完整的对等支持。与交换机的规则不同,RC通常被允许在层级域之间路由对等事务时将数据包分割成更小的数据包(如下所述例外),例如,将一个具有256字节有效载荷的单个数据包分割成两个各具有128字节有效载荷的数据包。由此产生的数据包将受到本规范中包含的数据包形成规则的约束(例如,Max_Payload_Size(最大有效载荷大小)、Read Completion Boundary(读完成边界,RCB)等)。组件设计者应注意,将数据包分割成更小的数据包可能会带来负面的性能影响,特别是对于寻址PCI Express到PCI/PCI-X桥接器后面设备的事务。
  • 例外:支持对等路由Vendor_Defined Messages(供应商定义消息)的RC不得将Vendor_Defined Message数据包分割成小于128字节边界的小包,除非在128字节边界处(即,除了最后一个数据包外,所有生成的数据包的长度必须是128字节的整数倍),以保持跨PCI Express到PCI/PCI-X桥接器转发消息的能力。
  • RC必须作为请求者支持生成配置请求。
  • 允许RC作为请求者支持生成I/O请求。
  • 允许RC向选定的根端口生成到地址80h和84h I/O请求,而不考虑该根端口的PCI桥I/O解码配置;建议仅在特别需要时才启用此机制。
  • RC作为完成者不允许支持锁定语义。
  • RC作为请求者允许支持生成锁定请求。

1.2 端点

端点指的是一种可以作为PCI Express事务的请求者或完成者的功能,它可以代表自己,也可以代表一个不同的非PCI Express设备(除了PCI设备或主机CPU之外),例如,一个连接PCI Express的GPU controller或一个PCI Express到USB的host controller。端点被分类为传统型、PCI Express型,或根复合体集成端点(RCiEPs)。

1.2.1 传统端点规则

  • 传统端点必须是一个具有type0配置空间头标的功能。
  • 传统端点作为完成者必须支持配置请求。
  • 传统端点作为完成者可以支持I/O请求。

              ---允许传统端点接收到地址80h和84h的I/O请求,而不考虑该端点的I/O解码配置。

  • 传统端点可以生成I/O请求。
  • 如果设备的支持该需求的传统软件要求,传统端点可以作为完成者支持锁定内存语义。
  • 传统端点不得发出锁定请求。
  • 传统端点可以实现扩展配置空间能力,但软件可能会忽略这些能力。
  • 作为内存事务请求者运行的传统端点不要求能够生成4GB或更大的地址。
  • 如果请求中断资源,传统端点需要支持MSI(消息信号中断)或MSIX(多消息信号中断),或两者都支持。如果实现了MSI,传统端点可以支持MSI能力结构的32位或64位消息地址版本。
  • 传统端点支持为请求内存资源的基地址寄存器(BAR)32位寻址。
  • 传统端点必须出现在由根复合体(Root Complex)发起的层级域之一中。

1.2.2 PCI Express端点规则

  • PCI Express端点必须是一个具有type0配置空间头标的功能。
  • PCI Express端点作为完成者必须支持配置请求。
  • PCI Express端点不能依赖操作系统通过基址寄存器(BAR)声明的I/O资源分配。
  • PCI Express端点不得生成I/O请求
  • PCI Express端点作为完成者不得支持锁定请求,也不得作为请求者生成锁定请求。符合PCI Express标准的软件驱动程序和应用程序必须根据该要求编写,以防止在访问PCI Express端点时使用锁定语义。
  • 作为内存事务请求者运行的PCI Express端点要求能够生成大于4GB的地址。
  • 如果请求中断资源,PCI Express端点需要支持MSI(消息信号中断)或MSIX(多消息信号中断),或两者都支持。如果实现MSI,PCI Express端点必须支持MSI能力结构的64位消息地址版本。
  • 通过BAR请求内存资源的PCI Express端点必须设置BAR的可预取位,除非该范围包含具有读取副作用的位置,或者该功能在该位置不容忍写合并。
  • 对于设置了可预取位的所有BAR,PCI Express端点必须支持64位寻址。对于所有没有设置可预取位的BAR,允许使用32位寻址。
  • BAR请求的最小内存地址范围是128字节
  • PCI Express端点必须出现在根复合体发起的层级域之一中。

1.2.3 根复合体集成端点规则

  • 根复合体集成端点(RCiEP)是在包含根端口的根复合体的内部逻辑上实现的。
  • RCiEP必须是一个具有类型type0配置空间头标的功能。
  • RCiEP作为完成者必须支持配置请求。
  • RCiEP不得通过基址寄存器(BAR)声明要求I/O资源
  • RCiEP不得生成I/O请求
  • RCiEP不得作为完成者支持锁定请求,也不得作为请求者生成它们。符合PCI Express标准的软件驱动程序和应用程序必须编写,以防止在访问RCiEP时使用锁定语义。
  • 作为内存事务请求者运行的RCiEP需要能够生成等于或大于主机作为完成者能够处理的地址。
  • 如果请求中断资源,RCiEP需要支持MSI(消息信号中断)或MSIX(多消息信号中断),或两者都支持。如果实现了MSI,RCiEP可以支持MSI能力结构的32位或64位消息地址版本。
  • RCiEP可以支持通过基址寄存器请求内存资源的32位寻址。

1.3 Switch

Switch被定义为多个虚拟PCI到PCI桥接设备的逻辑集合,如图1-3所示。所有Switch都遵循以下基本规则:

  • Switch在配置软件中表现为两个或更多的逻辑PCI至PCI桥接。
  • Switch使用PCI桥接机制转发事务;例如,基于地址的路由。
  • 除了本文档中注明的例外情况,一个Switch必须能够在任何一组端口之间转发所有类型的事务层数据包(TLPs)。

  • 锁定请求必须按照第6.5节中的规定得到支持。Switch不必支持下游端口作为锁定请求的发起端口。
  • 每个启用的Switch端口必须遵守本文档中所述的流量控制规范。
  • Switch不允许将一个数据包分割成更小的数据包,例如,一个具有256字节有效载荷的单个数据包不得被分成两个各128字节有效载荷的数据包。
  • 在Switch的入口端口(入站链路)之间进行仲裁时,可以在同一个虚拟通道上发生争用时使用轮询或加权轮询。
  • 端点(由type0配置空间头标表示)在Switch的内部总线上,作为虚拟PCI至PCI桥接的对等体,必须不出现在配置软件中,这些虚拟桥接代表Switch的下游端口。

1.4 根复合体事件收集器

  • 根复合体事件收集器提供支持,用于终止来自RCiEPs(根复合体集成端点)的错误和PME(电源管理事件)消息。
  • 根复合体事件收集器必须遵循所有RCiEP的规则。
  • 根复合体事件收集器不需要解码任何内存或I/O资源。
  • 根复合体事件收集器通过其设备/端口类型值被识别。
  • 根复合体事件收集器具有基类08h、子类07h和编程接口00h。
  • 根复合体事件收集器位于根复合体中的总线上。允许多个根复合体事件收集器位于单个总线上。
  • 根复合体事件收集器通过根复合体事件收集器端点关联扩展功能明确声明支持的RCiEPs。
  • 根复合体事件收集器是可选的。

1.5 PCI Express到PCI/PCI-X桥接器

  • PCI Express到PCI/PCI-X桥接器提供PCI Express结构和PCI/PCI-X层级之间的连接。

2. 发现、配置和操作的硬/软件模型

PCI/PCIe硬件/软件模型包括了架构构建,这些构建对于发现、配置和使用一个功能(Function)是必要的,而不需要特定于功能的知识。关键要素包括:

  • 一个配置模型,它为系统软件提供了一种手段,用以发现系统中可用的硬件功能。
  • 执行基本资源分配的机制,用于可寻址资源,如内存空间和中断。
  • 启用/禁用控制,用于功能对接收请求的响应,以及发起请求。
  • 定义良好的排序和流量控制模型,以支持硬件/软件接口的一致和健壮实现(健壮指的是容错性,稳定性,可靠性,可维护性,可扩展性好)。

PCI Express配置模型支持两种机制:

  • PCI兼容配置机制:PCI兼容机制支持与传统PCI感知操作系统及其相应的总线枚举和配置软件100%的二进制兼容性。

  • PCI Express增强配置机制:提供增强机制是为了增加可用配置空间的大小,并优化访问机制。

每个PCI Express(PCIe)链路都通过一个虚拟的PCI到PCI桥接结构映射,并且与一个逻辑的PCI总线相关联。这个虚拟的PCI到PCI桥接结构可能是PCI Express根复杂端口的一部分,一个Switch上行端口,或者一个Switch下行端口。根端口是一个虚拟的PCI到PCI桥接结构,它从一个PCI Express根复合体开始一个PCI Express层次结构域。设备被映射到配置空间中,以便每个设备都会响应特定的设备编号。

3.PCI Express分层概述

本文档根据三个独立的逻辑层次来指定架构:事务层、数据链路层和物理层。每一层都分为两个部分:一个处理外发(待传输)信息的部分,以及一个处理内入(已接收)信息的部分,如图1-4所示。

这种分层定义的基本目标是促进读者对规范的理解。请注意,这种分层并不意味着特定的PCI Express实现。

PCI Express 使用数据包来在组件之间通信。数据包在事务层和数据链路层中形成,携带信息从发送组件传输到接收组件。随着传输的数据包流经其他层,它们会根据这些层处理数据包所需的额外信息进行扩展。在接收端,会发生相反的过程,数据包从它们的物理层表示形式转换为数据链路层表示形式,最终(对于事务层数据包)转换为可以由接收设备的事务层处理的形式。图 1-5 显示了事务级数据包信息通过各层的概念性流程。 

注意,为了链路管理的目的,两个数据链路层(连接到同一链路)之间支持一种更简单的数据包通信形式。 

3.1 事务层

架构的上层是事务层。事务层的主要职责是组装和拆解事务层数据包(TLPs)。TLPs 用于通信事务,例如读写以及某些类型的事件。事务层还负责管理基于信用的TLPs流量控制。

每个需要响应数据包的请求数据包都实现为分割事务。每个数据包都有一个唯一的标识符,使得响应数据包能够被正确地导向正确的发起者。数据包格式支持根据不同事务类型(内存、I/O、配置和消息)的不同寻址形式。数据包还可能具有诸如无监听(No Snoop)、松散排序(Relaxed Ordering)和基于ID的排序(ID-Based Ordering,IDO)等属性。

事务层支持四种地址空间:它包括三个PCI地址空间(内存、I/O和配置),并增加了消息空间。本规范使用消息空间来支持所有先前的边带信号,例如中断、电源管理请求等,作为带内消息事务。你可以将PCI Express消息事务视为“虚拟线”,因为它们的效果是消除了目前在平台实现中使用的广泛边带信号。

3.2 数据链路层

架构中的中间层是数据链路层,充当事务层和物理层之间的中间媒介。数据链路层的主要职责包括链路管理和数据完整性,包括错误检测和错误校正。

数据链路层的传输端接受事务层组装的TLPs,计算并应用数据保护代码和TLP序列号,并将它们提交给物理层以在链路上传输。 接收数据链路层负责检查接收到的TLPs的完整性,并将它们提交给事务层进行进一步处理。在检测到TLP错误时,这一层负责请求重新传输TLPs,直到信息被正确接收,或确定链路已失败。

数据链路层还生成并消耗用于链路管理功能的包。为了区分事务层(TLP)使用的包,当提到在数据链路层生成和消耗的包时,将使用“数据链路层包(DLLP)”这个术语。

3.3 物理层

物理层包括所有用于接口操作的电路,包括驱动器和输入缓冲器、并行到串行和串行到并行转换、PLL(相位锁定环)和阻抗匹配电路。它还包括与接口初始化和维护相关的逻辑功能。物理层以特定于实现的格式与数据链路层交换信息。这一层负责将从数据链路层接收到的信息转换为适当的串行格式,并以与连接在链路另一端的设备兼容的频率和宽度通过PCI Express链路传输。

PCI Express架构有“钩子”来支持通过速度升级和先进的编码技术来支持未来的性能提升。未来的速率、编码技术或介质可能只影响物理层。

3.4 层功能和服务

3.4.1 事务层服务

在生成和接收事务层数据包(TLPs)的过程中,事务层与其在链路另一端的互补事务层交换流量控制信息。它还负责支持软件和硬件发起的电源管理。

初始化和配置功能要求事务层:

  • 存储由处理器或管理设备生成的链路配置信息
  • 存储由物理层硬件协商生成的链路能力,包括宽度和操作频率

事务层的数据包生成和处理服务要求它:

  • 从设备的核心应用层请求生成TLPs
  • 将接收到的请求TLPs转换为设备核心应用层的请求
  • 将接收到的完成数据包转换为有效载荷或状态信息,可交付给核心应用层
  • 检测不支持的TLPs并调用适当的机制来处理它们
  • 如果支持端到端数据完整性,生成端到端数据完整性CRC(ECRC)并相应更新TLP头标

流量控制服务:

  • 事务层跟踪跨链路的TLPs流控制信用量。
  • 事务信用状态定期使用数据链路层的传输服务传输给远程事务层。
  • 远程流量控制信息用于控制TLP传输。

排序规则:

  • 符合PCI/PCI-X兼容的生产者/消费者排序模型
  • 支持松散排序的扩展
  • 支持基于ID排序的扩展

电源管理服务:

  • 通过系统软件指定的机制进行软件控制的电源管理。
  • 硬件控制的自主电源管理在全速电源状态下最小化功耗。

虚拟通道和流量类别:

  • 提供虚拟通道机制(VC)和流量类别(TC)识别的组合,以支持不同服务和对某些类别应用程序的QoS(服务质量)支持。
  • 虚通道:虚通道提供了一种手段,通过链路的共同物理资源支持多个独立的逻辑数据流。从概念上讲,这涉及将不同的数据流多路复用到单个物理链路上。
  • 流量类别:流量类别是事务层数据包的一个标签,它在通过整个结构时未经修改地端到端传输。在结构内的每个服务点(例如,Switch)上,流量类别标签被用来应用合适的服务策略。每个流量类别标签定义了一个独特的排序域——对于包含不同流量类别标签的数据包,不提供排序保证。

3.4.2 数据链路层服务

数据链路层负责与链路对面的对应方可靠地交换信息。

初始化和电源管理服务:

  • 接受来自事务层的电源状态请求并传达给物理层
  • 向事务层传达 激活/重置/断开连接/电源管理状态

数据保护、错误检查和重试服务:

  • CRC(循环冗余校验)生成
  • 用于数据链路层级重试的传输TLP存储
  • 错误检查
  • TLP确认和重试消息
  • 错误指示用于错误报告和记录

3.4.3 物理层服务

接口初始化、维护控制和状态跟踪:

  • 重置/热插拔控制/状态
  • 接口电源管理
  • 宽度和通道映射协调
  • 通道极性反转

符号和特殊有序集生成:

  • 8b/10b 编码/解码
  • 内嵌时钟调整和对齐

符号传输和对齐:

  • 传输电路
  • 接收电路
  • 接收端的弹性缓冲器
  • 接收端多通道去偏差(对于宽度 > 1)

系统可测试性(DFT)支持特性:

  • 合规模式
  • 修改的合规测试

3.4.4 层间接口

3.4.4.1 事务层/数据链路层接口

事务层到数据链路层接口提供:

  • 要通过链路发送的字节或多字节数据
  1. 本地TLP(事务层数据包)传输握手机制
  2. TLP边界信息
  • 链路请求的电源状态

数据链路层到事务接口提供:

  • 从PCI Express链路接收的字节或多字节数据
  • 接收字节的TLP帧信息
  • 链路的实际电源状态
  • 链路状态信息
3.4.4.2 数据链路层/物理层接口

数据链路层到物理接口层提供:

  • 要通过链路发送的字节或多字节宽数据
  1. 数据传输握手机制
  2. 字节的TLP(事务层数据包)和DLLP(数据链路层数据包)边界信息
  • 链路请求的电源状态

物理层到数据链路层接口提供:

  • 从PCI Express链路接收的字节或多字节宽数据
  • 数据的TLP和DLLP帧信息
  • 物理层检测到的错误指示
  • 链路的实际电源状态
  • 连接状态信息

相关文章:

PCIE协议-1

1. PCIe结构拓扑 一个结构由点对点的链路组成,这些链路将一组组件互相连接 - 图1-2展示了一个结构拓扑示例。该图展示了一个称为层级结构的单一结构实例,由一个根复合体(Root Complex, RC)、多个端点(I/O设备&#xf…...

[C++][PCL]pcl安装包预编译包国内源下载地址

版本名称下载地址PCL-1.14.1-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.14.0-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.13.1-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.13.0-AllInOne-msvc2022-win64含pdb.zip点我下载PCL-1.12.1-AllInOne-msvc2019-win64含…...

海洋行业工业气体检测传感器的重要性

海洋行业是一个广阔而复杂的领域,涉及多个分支和应用,包括浮式生产、储存和卸载(FPSO)装置、渡轮和潜艇等。这些船舶和设施在执行任务时,都可能遇到各种潜在的气体危害。因此,对于海洋行业来说,…...

免费在线录屏、无需注册、免费可用、无限制

免费在线工具 https://orcc.online/ 在线录屏 https://orcc.online/recorder pdf在线免费转word文档 https://orcc.online/pdf 时间戳转换 https://orcc.online/timestamp Base64 编码解码 https://orcc.online/base64 URL 编码解码 https://orcc.online/url Hash(MD5/SHA…...

5V升9V2A升压恒压WT3231

5V升9V2A升压恒压WT3231 WT3231,一款性能卓越的DC-DC转换器,采用了集成10A、26mΩ功率的MOSFET电源开关转换器。它能够输出高达12V的电压,稳定可靠。这款产品以固定的600KHz运行,因此可以使用小型的外部感应器和电容器&#xff0…...

Java中枚举类的使用详解

Java中枚举类的使用详解 在Java编程中,枚举(Enum)是一种特殊的类,用于表示固定数量的常量。与常量相比,枚举类型具有类型安全、可读性强和易于管理的优点。下面我们将详细讲解Java中枚举类的使用,并通过示…...

C++11 设计模式6. 建造者模式,也叫做生成器模式

一 什么是建造者模式? // 小木公司对于SQL有配置,因此要输入sql url,然后输入 sql username,然后是 sql ps //因此小木就想到了使用 SystemConfig这个类来完成上述的三个初始化 //5.1号小木公司加入了redis的缓存机制&#xff0…...

GPS与精致农业 无人机应用 农业遥感 农业类

全球定位系统是美国国防部主要为满足军事部门对海上、陆地和空中设施进行高精度导航和定位的要求而建立的。GPS系统最基本的特点是以“多星、高轨、高频、测量-测距”为体制,以高精度的原子钟为核心。GPS作为新一代卫星导航与定位系统,不仅具有全球性、全…...

Kotlin注解简介

Kotlin注解 注解(Annotations)在 Kotlin 中和在 Java 中有类似的地位,它们都是元数据的形式,为代码提供了额外的信息。注解不会直接影响代码的操作,但可以被编译器或者运行时环境用来生成额外的代码、进行类型检查、处…...

代码随想录训练营

Day45代码随想录 322.零钱兑换 1.题目描述 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -…...

java中的变量、数据类型、人机交互

变量 变量要素 1、类型;每一个变量都需要定义类型(强类型)其它语言有弱类型(js) 2、变量名; 3、存储的值; 声明方式: 数据类型 变量名 变量值; public static vo…...

Python中的生成器是什么

生成器的工作原理 只要Python函数的主体中有yield关键字,该函数就是生成器函数。调用生成器函数,返回一个生成器对象。也就是说,生成器函数是生成器工厂。 下面以一个简单的函数说明生成器的行为: def gen123():yield 1yield 2yield 3print(gen123) # <function gen…...

【Camera2完整流程分析四】从log角度分析CameraService启动流程

下面直接带你通过log打印来一起读CameraService启动的过程。 1)Camera service对象构建,在启动的时候先创建CameraService 这里会打印: CameraService: CameraService started (pid=559)接着启动的时候会执行 –》onFirstRef() 进入这里面看,先输出打印: CameraService:…...

基于SSM SpringBoot vue教务排课系统

基于SSM SpringBoot vue教务排课系统 系统功能 登录 个人中心 学生信息管理 教师信息管理 课室信息管理 班级信息管理 系别信息管理 专业信息管理 课程信息管理 选课信息管理 课表信息管理 开发环境和技术 开发语言&#xff1a;Java 使用框架: SSM(Spring SpringMVC Myba…...

深入理解 LinkedList 及底层源码分析

LinkedList 是基于链表结构的一种 List&#xff0c;在分析 LinkedList 源码前我们先对对链表结构做一个简单的了解。 一、链表的概念 链表是由一系列非连续的节点组成的存储结构&#xff0c;简单分下类的话&#xff0c;链表又分为_单向链表和双向链表&#xff0c;而单向 / 双…...

美易官方:英伟达业绩将难以撑起股价?

美股市场似乎总是对各大公司的业绩表现抱有极大的期待&#xff0c;就像一个永远填不饱的“巨胃”。在这样的市场环境下&#xff0c;即使是业绩骄人的公司也可能难以支撑其股价。英伟达&#xff0c;这家在图形处理单元&#xff08;GPU&#xff09;领域享有盛誉的公司&#xff0c…...

超实用干货!FP独立站引流攻略

在当前的市场环境下&#xff0c;对于希望继续从事FP和黑五类产品销售的商家来说&#xff0c;搭建独立站绝对是一个明智的选择。没有了第三方平台的限制&#xff0c;拥有自己的独立站意味着你可以完全掌控自己的商业策略和操作。 但脱离了平台&#xff0c;独立站推广会更加困难。…...

php之框架底层中间件模式开发实现、array_reduce的应用

众所周知php框架的中间件核心是通过array_reduce实现的 php之框架中间件模式开发实现、array_reduce的应用 1.先写个测试用例看一下函数的特性2.根据执行特性实现中间件 1.先写个测试用例看一下函数的特性 <?phpfunction kernal($a,$b){return $a . " and " .…...

fabric搭建生产网络

fabric搭建生产网络 一、生成组织结构与身份证书 解包 hyperledger-fabric-linux-amd64-2.5.0.tar.gz 1.1、crypto-config.yaml配置文件 ./bin/cryptogen showtemplate > crypto-config.yaml 将crypto-config.yaml内容修改为&#xff1a; # -------------------------…...

聊聊 ASP.NET Core 中间件(二):中间件和筛选器的区别

前言 有些小伙伴看到上一篇文章后&#xff0c;可能会发现中间件和我们之前讲的筛选器非常类似&#xff0c;比如它们都是通过 next 串起来的一系列的组件&#xff0c;并且都可以在请求处理前后执行代码&#xff0c;都可以通过不执行 next 来进行请求的终止。那么筛选器和中间件…...

Nginx配置Https缺少SSL模块

1、Linux下Nginx配置https nginx下载和安装此处就忽略&#xff0c;可自行百度 1.1、配置https 打开nginx配置文件 vim /opt/app/nginx/conf/nginx.conf相关https配置 server {listen 443 ssl; #开放端口server_name echarts.net;#域名#redirect to https#ssl on; #旧版#ssl证…...

超详细——集成学习——Adaboost实现多分类——附代码

资料参考 1.【集成学习】boosting与bagging_哔哩哔哩_bilibili 集成学习——boosting与bagging 强学习器&#xff1a;效果好&#xff0c;模型复杂 弱学习器&#xff1a;效果不是很好&#xff0c;模型简单 优点 集成学习通过将多个学习器进行结合&#xff0c;常可获得比单一…...

串口通信标准RS232 RS485 RS422的区别

很多工程师经常把RS-232、RS-422、RS-485称为通讯协议&#xff0c;其实这是不对的&#xff0c;它们仅仅是关于串口通讯的一个机械和电气接口标准&#xff08;顶多是网络协议中的物理层&#xff09;&#xff0c;不是通讯协议&#xff0c;那它们又有哪些区别呢&#xff1a; 第一…...

jdk环境安装

jdk安装 创建软件安装的目录 mkdir -p /bigdata/{soft,server} /bigdata/soft 安装文件的存放目录 /bigdata/server 软件安装的目录 把安装的软件上传到/bigdata/soft 目录 解压到指定目录 -C :指定解压到指定目录 tar -zxvf /bigdata/soft/jdk-8u241-linux-x64.tar.gz -C /b…...

QT+网络调试助手+TCP服务器

一、UI界面设计 二、单线程 代码设计 1、 查找合法的本地地址&#xff0c;用于当作服务器的IP地址 #include <QThread> #include <QTcpSocket> #include <QNetworkInterface> #include <QMessageBox>QList<QHostAddress> ipAddressesList QNe…...

【unity】(1)场景

Unity的场景&#xff08;Scene&#xff09;是构建游戏中各种环境和级别的基础。一个场景可以包含游戏中的所有对象&#xff0c;如角色、道具、地形等。 创建和管理场景 创建新场景&#xff1a; 在Unity编辑器中&#xff0c;选择File > New Scene&#xff0c;或者使用快捷键…...

【Linux】进程间通信IPC机制

目录 一、无名管道 二、有名管道 三、共享内存 四、信号量 五、消息队列 六、套接字 一、无名管道 1.只能用于具有亲缘关系的进程之间的通信(也就是父子进程或者兄弟进程)。 2.是一个单工的通信模式&#xff0c;具有固定的读端和写端。 3.管道也可以看成是一种特殊的文件…...

【如此简单!数据库入门系列】之效率基石 -- 磁盘空间管理

文章目录 1 前言2 磁盘空间管理3 磁盘空间管理的实现4 存储对象关系5 总结6 系列文章 1 前言 如何将表中的记录存储在物理磁盘上呢&#xff1f; 概念模式中&#xff0c;记录&#xff08;Record&#xff09;表示表中的一行数据&#xff0c;由多个列&#xff08;字段或者属性&…...

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(五)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 继续接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 在下面的图片中&#…...

5月7日监控二叉树+斐波那契数

968.监控二叉树 给定一个二叉树&#xff0c;我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 1&#xff1a; 输入&#xff1a;[0,0,null,0,0] 输出&#xff1a;1 解释&#xff…...

C++类的设计编程示例

一、银行账户类 【问题描述】 定义银行账户BankAccount类。 私有数据成员&#xff1a;余额balance&#xff08;整型&#xff09;。 公有成员方法&#xff1a; 无参构造方法BankAccount()&#xff1a;将账户余额初始化为0&#xff1b; 带参构造方法BankAccount(int m)&#xff1…...

YOLOv5 V7.0 - rknn模型的验证 输出精度(P)、召回率(R)、mAP50、mAP50-95

1.简介 RKNN官方没有提供YOLOv5模型的验证工具&#xff0c;而YOLOv5自带的验证工具只能验证pytorch、ONNX等常见格式的模型性能&#xff0c;无法运行rknn格式。考虑到YOLOv5模型转换为rknn会有一定的精度损失&#xff0c;但是需要具体数值才能进行评估&#xff0c;所以需要一个…...

CUDA、CUDNN、Pytorch三者之间的关系

这个东西嘛&#xff0c;我一开始真的是一头雾水&#xff0c;安装起来真是麻烦死了。但是随着要复现的项目越来越多&#xff0c;我也不得不去学会他们是什么&#xff0c;以及他们之间的关系。 首先&#xff0c;一台电脑里面允许有多种版本的cuda存在&#xff0c;然后cuda分为run…...

vue-cli2,vue-cli3,vite 生产环境去掉console.log

console.log一般都是在开发环境下使用的&#xff0c;在生产环境下需要去除 &#xff0c;如果手动删除未免也太累了&#xff0c;我们可以用插件对于具体环境全局处理。 vue-cli2 项目build 下面webpack.prod.config.js 文件中: plugins: [new webpack.DefinePlugin({process.en…...

Docker-Compose编排LNMP并部署WordPress

前言 随着云计算和容器化技术的快速发展&#xff0c;使用 Docker Compose 编排 LNMP 环境已经成为快速部署 Web 应用程序的一种流行方式。LNMP 环境由 Linux、Nginx、MySQL 和 PHP 组成&#xff0c;为运行 Web 应用提供了稳定的基础。本文将介绍如何通过 Docker Compose 编排 …...

附录C:招聘流程

< 回到目录 附录C&#xff1a;招聘流程 _xxx_公司的招聘 使命 只雇佣顶级人才。 他们是能够胜任工作&#xff0c;并与 _&#xff08;你的公司名称&#xff09;_ 的企业文化相匹配的超级明星。 方法 记分卡。招聘经理创建一份文件&#xff0c;详细描述此职位的工作内容…...

1688快速获取整店铺列表 采集接口php Python

在电子商务的浪潮中&#xff0c;1688平台作为中国领先的批发交易平台&#xff0c;为广大商家提供了一个展示和销售商品的广阔舞台&#xff1b;然而&#xff0c;要在众多店铺中脱颖而出&#xff0c;快速获取商品列表并进行有效营销是关键。 竞争对手分析 价格比较&#xff1a;…...

CTF-WEB(MISC)

安全攻防知识——CTF之MISC - 知乎 CTF之MISC杂项从入门到放弃_ctf杂项 你的名字-CSDN博客 CTF MICS笔记总结_archpr 掩码攻击-CSDN博客 一、图片隐写 CTF杂项---文件类型识别、分离、合并、隐写_ctf图片分离-CSDN博客 EXIF&#xff08;Exchangeable Image File&#xff09;是…...

Ubuntu如何更换 PyTorch 版本

环境&#xff1a; Ubuntu22.04 WLS2 问题描述&#xff1a; Ubuntu如何更换 PyTorch 版本考虑安装一个为 CUDA 11.5 编译的 PyTorch 版本。如何安装旧版本 解决方案&#xff1a; 决定不升级CUDA版本&#xff0c;而是使用一个与CUDA 11.5兼容的PyTorch版本&#xff0c;您可…...

python flask css样式无效

解释&#xff1a; Flask是一个Python的轻量级Web框架&#xff0c;它没有为CSS提供任何内置的支持。如果你在Flask项目中引入了CSS文件&#xff0c;但是这个CSS没有生效&#xff0c;可能的原因有&#xff1a; 路径不正确&#xff1a;你的CSS文件没有放在正确的目录下&#xff0…...

大数据学习笔记14-Hive基础2

一、数据字段类型 数据类型 &#xff1a;LanguageManual Types - Apache Hive - Apache Software Foundation 基本数据类型 数值相关类型 整数 tinyint smallint int bigint 小数 float double decimal 精度最高 日期类型 date 日期 timestamps 日期时间 字符串类型 s…...

vue3 下载图片(包括多图片下载)

单图片下载 //使用 download(https://img1.baidu.com/it/u1493209339,2544178769&fm253&app138&sizew931&n0&fJPEG&fmtauto?sec1715101200&t854f3434686cfd2cba9d6a528597d15c)//下载逻辑 const download async (modelUrl) > {const respons…...

LabVIEW如何通过子VI更改主VI控件属性?

在LabVIEW中&#xff0c;可以通过使用Local Variable或Property Node来实现主VI控件属性的更改。这些方法可以在主VI和子VI之间传递数据和控件属性。 Local Variable: 使用Local Variable可以在子VI中直接访问并修改主VI中的控件属性。在子VI中创建Local Variable&#xff0c;并…...

关于MS-DOS时代的回忆

目录 一、MS-DOS是什么&#xff1f; 二、MS-DOS的主要功能有哪些&#xff1f; 三、MS-DOS的怎么运行的&#xff1f; 四、微软开源MS-DOS源代码 五、高手与漂亮女同学 一、MS-DOS是什么&#xff1f; MS-DOS&#xff08;Microsoft Disk Operating System&#xff09;是微软公…...

数据库索引(Mysql)

简述:数据库索引是加速数据检索,提高查询效率的一种数据结构 语法规则 创建索引 --通用语法规则 --[内容] 可选参数 --UNIQUE: 可选关键字&#xff0c;用于创建唯一索引&#xff0c;确保索引列的值是唯一的 CREATE [UNIQUE] INDEX 索引名 ON 表名(字段名,...) [ASC | DESC];…...

异常-Exception

异常介绍 基本概念 Java语言中&#xff0c;将程序执行中发生的不正常情况称为“异常”。&#xff08;开发过程中的语法错误和逻辑错误不是异常&#xff09;执行过程中所发生的异常事件可分为两大类 1&#xff0c;Error&#xff08;错误&#xff09;&#xff1a;Java虚拟机无法…...

ctfshow——SQL注入

文章目录 SQL注入基本流程普通SQL注入布尔盲注时间盲注报错注入——extractvalue()报错注入——updataxml()Sqlmap的用法 web 171——正常联合查询web 172——查看源代码、联合查询web 173——查看源代码、联合查询web 174——布尔盲注web 176web 177——过滤空格web 178——过…...

第十三章 计算机网络

这里写目录标题 1.网络设备2.协议簇2.1电子邮件(传输层)2.2地址解析(网际层)2.3DHCP(动态主动配置协议)2.4URL(统一资源定位器)2.5IP地址和子网掩码 1.网络设备 物理层&#xff1a;中继器&#xff0c;集线器(多路中继器) 数据链路层&#xff1a;网桥&#xff0c;交换机(多端口…...

商品详情 API 返回值说明

商品详情API接口在多个领域和场景中都有广泛的应用&#xff0c;以下是一些常见的应用场景&#xff1a; 竞品分析&#xff1a;企业可以利用商品详情API接口获取竞品的所有详细信息&#xff0c;如价格、发货地、上架时间、销售量等。通过分析这些竞品信息&#xff0c;企业可以更…...

层级实例化静态网格体组件:开启大量模型处理之门

前言 在数字孪生的世界里&#xff0c;我们常常需要构建大量的模型来呈现真实而丰富的场景。然而&#xff0c;当使用静态网格体 &#xff08;StaticMesh &#xff09;构建大量模型时&#xff0c;可能会遇到卡顿的问题&#xff0c;这给我们带来了不小的困扰&#x1f623;。那么&…...

win11设置管理员账户

今天早上&#xff0c;删除一个文件&#xff0c;删不了&#xff0c;就随手误点击了修改权限&#xff0c;把当前用户给修改成标准了&#xff0c;然后还直接重启电脑了&#xff0c;这下麻烦大了&#xff0c;在进入虽然使用没啥影响&#xff0c;但是&#xff0c;和系统有关的所有操…...

第八篇 Asciidoc 输出 All In One HTML 解决图片无法显示问题

问题:我的图片显示不出来了 小明使用 Asciidoc 来记笔记,他将笔记输出为 HTML 文件。小丽向小明借笔记。小明将 Asciidoc 笔记输出为 HTML文件,并拷贝给了小丽。 但是,小丽发现,图片都显示不出来了。 小丽:小明,你给我的笔记,图片都显示不出来啊。 小明:是我给你的…...

0X JavaSE-- ( 遍历-- for each、Iterator 、)、

for each for each 语句是 JDK5 的新特征&#xff0c;主要用于遍历数组、集合。 // collection 可以是数组/实现了 Iterable 接口的集合类 for(dataType variable : collection){ // 使用 item 进行操作 } // 遍历二维数组// 初始化一个二维数组int[][] array {{1, 2, 3},{4…...

EIP-4844对Polygon的意义

1. 引言 Dencun 升级引入了L2新资源&#xff0c;并降低了与calldata相关的交易手续费。 本文要点为&#xff1a; EIP-4844 引入了 blobspace —— 一种用于高效管理大型二进制对象 (large binary objects&#xff0c;BLOB) 的数据库存储概念。Blobs 将降低rollups的交易成本…...

C# .Net8 switch 的用法

在 .net 8中&#xff0c;switch 不需要再和传统的写法一样了&#xff0c;会更加的方便 创建一个 .net 8 控制台项目 switch 的写法没必要和以前一样 namespace SwitchTest {internal class Program{static void Main(string[] args){int day 3;var week day switch{1 > &…...

Linux上编译安装和卸载软件

在maven官网下载maven时候&#xff0c;看到maven-3.9.5这个版本有2份安装包&#xff0c;一个是binaries&#xff0c;一个是source binaries是已编译好的文件&#xff0c;可以直接使用的版本&#xff1b;source是源代码版本&#xff0c;需要自己编译 源码的安装一般由这三个步…...