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

DP读书:鲲鹏处理器 架构与编程(六)PCI Express 总线

处理器与服务器:PCI Express 总线

  • PCI Express 总线
    • 1. PCI Express 总线的特点
      • a. 高速差分传输
      • b. 串行传输
      • c. 全双工端到端连接
      • d. 基于多通道的数据传输方式
      • e. 基于数据包的传输
    • 2. PCI Express 总线的组成与拓扑结构
      • a. 根复合体
      • b. PCI Express桥
      • c. 功能单元
    • 3. PCI Express 总线的层次结构
      • a. 层次结构
      • b. 分组结构
    • 4. PCI Express 总线的拓扑发现
    • 5. PCI Express 总线的总线事务
    • 6. PCI Express 总线的地址空间
    • 7. PCI Express 总线的中断机制
    • 8. PCI Express 总线的差错处理和差错报告

PCI Express 总线

PCI Express(Peripheral Component Interconnect Express)是一种高速串行计算机扩展总线标准,原来的名称为“3GIO”,是由英特尔在2001年提出的。PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。PCIe交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”,简称“PCI-e”。PCI Express有多种规格,从PCI Express x1到PCI Express x32,能满足将来一定时间内出现的低速设备和高速设备的需求。

2023-08-17 2023-08-19 2023-08-21 2023-08-23 2023-08-25 2023-08-27 2023-08-29 2023-08-31 2023-09-01 2023-09-03 2023-09-05 2023-09-07 2023-09-09 总线标准 总线名称 高速串行传输 发布年份 点对点连接 PCI Express x1 PCI Express x4 独享通道带宽 PCI Express x8 主动电源管理 PCI Express x16 PCI Express x32 错误报告 端对端可靠性传输 热插拔 服务质量(QOS) 基本信息 特点和功能 规格 PCI Express总线物理结构

1. PCI Express 总线的特点

a. 高速差分传输

PCI Express总线的特点之一是高速差分传输。这种传输方式使用LVDS(Low Voltage Differential Signaling,低电压差分信号) 技术,允许多个设备通过一条高速数据线进行连接,从而实现更高的数据传输速率。PCI Express x16接口支持的最大数据传输速率可达16GB/s,足以满足各种高速设备的需求。

b. 串行传输

PCI Express总线另一个特点是串行传输。与传统的并行总线不同,PCI Express总线采用串行方式传输数据。这种传输方式具有更高的数据传输速率和更低的传输延迟。串行传输还可以减少所需的信号线数量,从而降低硬件成本和系统复杂性。

c. 全双工端到端连接

PCI Express总线的一个特点是全双工端到端连接。这意味着数据可以在两个方向上同时传输,从而提高了传输效率。这种连接方式是基于数据包的传输,可以实现类似计算机网络中的交换和路由功能。

在PCI Express总线中,每个设备都有自己的专用 通道(Lane),可以直接与其他设备进行通信。这种分布式通信架构提高了系统性能和可dB扩展性。全双工传输方式还可以减少传输延迟,提高数据传输速率。

总之,PCI Express总线通过全双工端到端连接实现了高性能、高带宽的数据传输。这种连接方式提高了传输效率和系统性能,适用于各种高速设备的应用场景。

2023-08-16 2023-08-17 2023-08-18 2023-08-19 2023-08-20 2023-08-21 2023-08-22 2023-08-23 2023-08-24 2023-08-25 2023-08-26 I/O映射 内存映射 基址寄存器配置 I/O寻址 内存寻址 控制信号发送 限制寄存器配置 控制信号接收 I/O地址空间 内存地址空间 寄存器配置 总线控制 总线通道物理结构

d. 基于多通道的数据传输方式

PCI Express总线采用基于多通道的数据传输方式。这种传输方式允许多个设备通过一条高速数据线连接,从而实现更高的数据传输速率。PCI Express总线支持1、2、4、8、12、16和32通道的连接,以满足不同系统设备对数据传输带宽的不同需求。

基于多通道的数据传输方式可以提高数据传输的效率和速度。通过将数据分配到不同的通道中,可以同时处理多个数据流,从而减少传输延迟并提高系统性能。

此外,PCI Express总线还支持数据分通道传输模式。在这种模式下,数据可以在不同的通道中同时传输,从而实现更高的数据传输速率。例如,PCI Express x16接口可以实现最大16GB/s的数据传输速率,足以满足高速设备的需求。

总之,PCI Express总线采用基于多通道的数据传输方式,提高了数据传输的效率和速度,适用于各种高速设备的应用场景。

e. 基于数据包的传输

PCI Express总线采用基于数据包的传输方式。这种传输方式将数据封装在数据包中,并通过PCI Express总线进行传输。每个数据包都包含发送方的信息和接收方的信息,从而实现了高效的数据传输

基于数据包的传输方式具有以下优点:

1. 高效性:基于数据包的传输方式可以避免不必要的传输,从而提高了传输效率。
2. 灵活性和扩展性:基于数据包的传输方式可以灵活地支持不同的数据类型和数据长度,并且可以随着系统的扩展而扩展。
3. 支持QoS和虚拟通道:基于数据包的传输方式支持QoS(Quality of Service)和虚拟通道,可以实现优先级控制和特定数据流的传输。
4. 支持热插拔和电源管理:基于数据包的传输方式支持热插拔和电源管理,可以提高系统的可靠性和节能性能。

总之,PCI
Express总线采用基于数据包的传输方式,具有高效性、灵活性和扩展性,支持QoS和虚拟通道,以及热插拔和电源管理等功能,适用于各种高速设备的应用场景。

2. PCI Express 总线的组成与拓扑结构

a. 根复合体

PCI Express总线由多个组件组成,其中最重要的是根复合体(Root Complex)

根复合体是PCI Express总线中的一个关键组件,它负责将主机系统连接到PCI Express总线。根复合体通常由一个或多个**根端口(Root Port)**组成,每个根端口都可以连接一个或多个PCI设备。

根复合体还可以包含其他组件,例如串行总线(Serial Bus)中断控制器(Interrupt Controller) 等。串行总线用于连接多个设备,而中断控制器则负责处理中断请求。

PCI Express总线的拓扑结构可以根据具体应用场景进行调整。常见的拓扑结构包括星型、树型和Mesh型等。在星型拓扑中,所有设备都直接连接到根复合体;在树型拓扑中,设备可以按照层次结构进行连接,形成类似树的形状;在Mesh型拓扑中,设备之间可以有多条连接路径,从而提高了系统的可靠性和可扩展性。

总之,PCI Express总线由多个组件组成,其中最重要的是根复合体。根复合体负责将主机系统连接到PCI Express总线,并可以包含其他组件。PCI Express总线的拓扑结构可以根据具体应用场景进行调整,常见的拓扑结构包括星型、树型和Mesh型等。

b. PCI Express桥

除了根复合体之外,PCI Express总线还包括PCI Express桥。

PCI Express桥是PCI Express总线中的一个重要组件,它的作用是将PCI Express总线连接到其他类型的总线或设备。通过桥接,PCI Express总线可以与其他总线或设备进行通信和数据传输。PCI Express桥可以连接不同类型的总线或设备,例如PCI总线、AGP总线、USB总线等。通过桥接,这些设备可以与PCI Express总线进行通信和数据传输。在PCI Express总线的拓扑结构中,桥是常见的组件之一。通过桥接,可以将多个总线或设备连接在一起,形成一个更大的网络。这种网络可以是星型、树型或Mesh型等,具体取决于应用场景和系统设计。

总之,PCI Express总线中的另一个重要组件是PCI Express桥,它的作用是将PCI Express总线连接到其他类型的总线或设备,从而形成一个更大的网络。

c. 功能单元

PCI Express总线由以下几个主要功能单元组成:

  1. 根组件(Root Complex)。 根组件是PCI Express总线的一个关键组件,它负责将主机系统连接到PCI E xpress总线。根组件通常由一个或多个**根端口(Root Port)组成,每个根端口都可以连接一个或多个PCI设备。根组件还可以包含其他组件,例如串行总线(Serial Bus)中断控制器(Interrupt Controller)**等。
  2. 交换器(Switch)。 交换器是PCI Express总线中的一个重要组件,它的功能主要是为I/O总线提供输出端,并支持在不同终端设备间进行对等数据传输。交换器通常以软件的形式提供,包括多个逻辑PCI到PCI的桥连接,以及与传统PCI设备的兼容性。
  3. 终端设备(Endpoint)。 终端设备是PCI Express总线中的另一个重要组件,它可以被视为一个单独的设备,该设备通过PCI Express端口连接到总线上。终端设备通常具有高速数据传输能力,可以支持各种不同的数据类型和数据长度。

这些功能单元在PCI Express总线的拓扑结构中也扮演着重要的角色。例如,根组件可以形成一个星型或树型的拓扑结构,而交换器则可以在这个拓扑结构中提供更复杂的连接。同时,终端设备可以被视为拓扑结构中的节点,它们可以通过交换器进行通信和数据传输。

除了这些主要的功能单元外,PCI Express总线还包括其他一些组件,例如事务层、数据链路层和物理层等,这些组件提供了更高级别的功能和特性。

3. PCI Express 总线的层次结构

a. 层次结构

PCI Express总线采用分层设计,共分为四层,从下到上分别是物理层、数据链路层、处理层和软件层。

1. 物理层:物理层定义了电气和机械规范,包括线路规格、信号定义、传输速率等内容,它实现了比特流的传输。
2. 数据链路层:数据链路层负责在设备之间建立连接,并实现可靠的数据传输。数据链路层还处理错误检测和纠正,例如奇偶校验和冗余校验。
3. 处理层:处理层负责处理事务,例如数据包的封装、解封装和排序。处理层还负责处理各种请求类型,例如内存读/写请求、IO读/写请求等。
4. 软件层:软件层包括驱动程序和操作系统接口,它提供了标准的API接口,使得各种应用程序可以方便地使用PCI Express总线。

这种分层设计使得PCI Express总线具有灵活性和可扩展性,可以适应不同类型的应用需求。同时,分层设计也便于系统设计和管理,提高了系统的可靠性和稳定性。

b. 分组结构

PCI Express总线的分组结构是指数据包被分为多个组(Packet Group),每个组包含一个或多个数据包(Packet)。这种分组结构有助于提高数据传输的效率和可靠性。

在PCI Express总线的分组结构中,每个分组都包含以下信息:

1. 包头(Header):包头包含了该分组的元信息,例如分组的长度、类型、序列号等。
2. 数据段(Data):数据段包含了实际需要传输的数据,其长度由包头中的长度字段指定。
3. 帧间隔(Interframe Spacing):帧间隔是指在连续的两个帧之间插入的空闲时间,以保障总线稳定和避免数据冲突。

通过采用分组结构,PCI Express总线可以更好地处理数据传输过程中的各种问题,例如数据包的丢失、错误检测和纠正等。同时,分组结构也提高了数据传输的效率和可靠性,可以适应不同类型的应用需求。

4. PCI Express 总线的拓扑发现

PCI Express总线的拓扑发现是指通过一定的协议和机制,在系统中识别和确定PCI Express设备的连接关系和数据传输路径的过程。PCI Express总线采用了基于交换机和端点设备的拓扑结构,因此拓扑发现的结果可以反映这种结构的特点。

在PCI Express总线中,拓扑发现主要依赖于以下两个协议:

  1. PCI Express链路层协议:链路层协议定义了在PCI Express设备之间传输数据时所需的各种信号和消息,包括设备检测、配置、复位等操作。通过链路层协议,可以获取设备的链路状态和连接关系。
  2. PCI Express配置空间协议:配置空间协议定义了在设备初始化阶段,操作系统如何读取和配置设备的寄存器、接口、功能等信息。通过配置空间协议,可以获取设备的配置信息和能力。

在拓扑发现的过程中,通常需要执行以下步骤:

1. 设备检测:检测系统中是否存在PCI Express设备,以及设备的类型和数量。
2. 设备初始化:对设备进行初始化操作,包括分配设备号、设置设备参数等。
3. 设备枚举:通过读取配置空间协议中的设备寄存器和配置信息,获取设备的接口、功能、资源等信息。
4. 设备配置:根据设备的配置信息和能力,为设备分配必要的资源,并设置设备的参数。
5. 设备连接:通过链路层协议,检测设备的连接关系和链路状态,并建立设备之间的通信路径。

通过以上步骤,可以获取PCI Express总线的拓扑结构,包括设备的连接关系、设备的配置信息和数据传输路径等。这对于系统管理和应用程序开发都具有重要的意义。

5. PCI Express 总线的总线事务

PCI Express总线支持多种总线事务,包括存储器读写、IO读写、配置读写总线事务,以及Message消息总线事务等。

这些总线事务在PCIe设备之间传递数据时起到重要作用。例如,存储器读写事务用于直接操作硬件,产生总线周期实现数据传递;IO读写事务用于读写I/O端口的数据;配置读写事务用于读取或写入设备的配置信息;而Message消息事务则用于发送和接收消息类型的报文。

为了处理这些总线事务,PCI Express总线使用分层结构,其中事务层负责相应总线事务的转换。根据不同的事务类型,事务层会产生不同类型的TLP报文,并根据不同的路由方式进行数据转发。

graph TB
A[PCI Express总线]
B[南桥/北桥控制器]
C[设备]
D[I/O地址空间 (0x0000-0x3FFF)]
E[内存地址空间 (0xC0000000-0xF8000000)]
F[PCI总线编号 (Bus, Device, Function, Register)]
G[基址寄存器]
H[限制寄存器]
A -->|连接| B
B -->|映射到系统的I/O地址空间| D
B -->|映射到系统的内存地址空间| E
C -->|通过PCI总线编号进行寻址| F
C -->|提供基址寄存器和限制寄存器| G
C -->|提供基址寄存器和限制寄存器| H

6. PCI Express 总线的地址空间

PCI Express总线的地址空间分为两个部分:I/O地址空间和内存地址空间

I/O地址空间用于访问设备的I/O端口,其地址范围是0x0000-0x3FFF。这些地址通过南桥或北桥控制器映射到系统的I/O地址空间,并通过PCI总线编号(Bus, Device, Function和Register) 进行寻址。

内存地址空间用于访问设备的内存,其地址范围是0xC0000000-0xF8000000。这些地址通过南桥或北桥控制器映射到系统的内存地址空间,并通过PCI总线编号(Bus, Device, Function) 进行寻址。在映射过程中,设备需要向北桥或南桥控制器提供基址寄存器(Base Register)限制寄存器(Limit Register),以确定该设备所使用的内存范围。

需要注意的是,不同的操作系统和硬件平台可能对I/O地址空间和内存地址空间的映射方式有所不同,因此在进行系统设计时需要仔细考虑。

7. PCI Express 总线的中断机制

PCI Express总线中断机制与PCI总线类似,它支持传统的基于IRQ(Interrupt Request) 的中断方式,也引入了新的消息中断方式。

在传统的基于IRQ的中断方式中,每个设备有一个单独的IRQ线路,通过IRQ共享来减少中断的开销。这种方式在较老的PCI设备中比较常见。

在新的消息中断方式中,设备使用MSI(Message Signaled Interrupt)或 MSI-X(Message Signaled Interrupt eXtension) 发送中断请求到根设备。MSI使用32位消息地址和32位消息数据,而MSI-X使用更复杂的消息格式。这种方式可以提高中断处理的效率,适用于高性能、高吞吐量的设备。

在PCI Express总线中,中断控制器不再是必需的,根设备可以直接接收和处理中断请求。对于传统的基于IRQ的中断方式,中断控制器仍然需要,但可以通过PCI Express端点驱动程序进行配置和管理。

总之,PCI Express总线的中断机制支持传统基于IRQ的方式和新的消息中断方式,以满足不同设备的需要。

8. PCI Express 总线的差错处理和差错报告

PCI Express总线定义了三种错误报告方式:Completions、Poisoned Packet(又称为错误传递)和Error Message。这些错误类型可以通过设备控制寄存器中的相关位进行使能或者禁止,也可以通过设备状态寄存器相关位查询错误状态。

对于Completions错误,当Request在Completion阶段返回错误状态时,会通过Completion中的状态位向Request返回错误信息。

对于Poisoned Packet错误,当接收端收到一个已经被破坏的TLP数据包时,接收端会返回一个Poisoned
Packet错误,告知发送端该数据包已经被破坏。

对于Error Message错误,当出现致命错误或者某些特定类型的非致命错误时,可以通过Error Message报告错误信息。

对于链路错误,一般发生在物理层与数据链路层通信的过程中。对于Downstream的设备,如果链路上发生了Fatal错误,此时该设备并不能够向Root报告错误。这种情况下,需要Upstream设备向Root来报告错误。

class PCIExpressDevice {- 控制寄存器: ControlRegister- 状态寄存器: StatusRegister+ 使能Completions错误()+ 禁止Completions错误()+ 使能PoisonedPacket错误()+ 禁止PoisonedPacket错误()+ 使能ErrorMessage错误()+ 禁止ErrorMessage错误()+ 查询错误状态(): ErrorStatus
}class DownstreamDevice {+ 向Root报告错误()
}class UpstreamDevice {+ 向Root报告错误()
}class RootComplex {- 错误报告信息: ErrorReport
}PCIExpressDevice --> ControlRegister
PCIExpressDevice --> StatusRegister
PCIExpressDevice --> ErrorStatus
PCIExpressDevice --> ErrorReport
DownstreamDevice --> UpstreamDevice
UpstreamDevice --> RootComplex
 +-------------------+              +----------------+              +----------------+
|    PCI Express    |              |   Root Complex  |              |    Device      |
|                   |              |                 |              |                |
| +---------------+ |   Req to     | +-------------+ |   Req to     |                |
| |   Endpoint      |----------->  | |  Downstream | |----------->  |                |
| |    Device       |     TLP      | |   Port/Link | |     TLP      |                |
| +---------------+ |              | +-------------+ |              |                |
|                   |              |                 |              |                |
+-------------------+              +-----------------+              +----------------+

相关文章:

DP读书:鲲鹏处理器 架构与编程(六)PCI Express 总线

处理器与服务器:PCI Express 总线 PCI Express 总线1. PCI Express 总线的特点a. 高速差分传输b. 串行传输c. 全双工端到端连接d. 基于多通道的数据传输方式e. 基于数据包的传输 2. PCI Express 总线的组成与拓扑结构a. 根复合体b. PCI Express桥c. 功能单元 3. PCI…...

Pyqt5-开源工具分解功能(文本拖拽)

开源第四篇:功能实现之拖拽功能与配置文件。 写这个功能的初衷,是因为,每次调试我都要手动敲命令,太麻烦了,想偷个懒,所以直接给这功能加上了,顺便衍生出了另一个想法,配置文件自动填写相关数据。 先看个简单的拖拽功能: 很明显吧,还是比较便捷的。所以我们本章,就在…...

Java版B/S架构 智慧工地源码,PC、移动、数据可视化智慧大屏端源码

智慧工地是什么?智慧工地主要围绕绿色施工、安全管控、劳务管理、智能管理、集成总控等方面,帮助工地解决运营、管理方面各个难点痛点。在互联网的加持下促进项目现场管理的创新与发展,实现工程管理人员与工程施工现场的整合,构建…...

无涯教程-PHP - Session选项

从PHP7 起, session_start()()函数接受一系列选项,以覆盖在 php.ini 中设置的会话配置指令。这些选项支持 session.lazy_write ,默认情况下此函数为on,如果会话数据已更改,则会导致PHP覆盖任何会话文件。 添加的另一个…...

The Age of Data and AI: Challenges and Opportunities

Simply put Abstract: This paper examines the impact of the “Age of Data” on the field of artificial intelligence (AI). With the proliferation of digital technologies and advancements in data collection, storage, and processing, organizations now have ac…...

WPF 项目中 MVVM模式 的简单例子说明

一、概述 MVVM 是 Model view viewModel 的简写。MVVM模式有助于将应用程序的业务和表示逻辑与用户界面清晰分离。 几个概念的说明: model :数据,界面中需要的数据,最好不要加逻辑代码view : 视图就是用户看到的UI结构 xaml 文件viewModel …...

基于nginx禁用访问ip

一、背景 网络安全防护时,禁用部分访问ip,基于nginx可快速简单实现禁用。 二、操作 1、创建 conf.d文件夹 在nginx conf 目录下创建conf.d文件夹 Nginx 扩展配置文件一般在conf.d mkdir conf.d 2、新建blocksip.conf文件 在conf.d目录新建禁用ip的扩展配置文…...

【第三阶段】kotlin语言的内置函数let

1.使用普通方法对集合的第一个元素相加 fun main() {//使用普通方法对集合的第一个元素相加var list listOf(1,2,3,4,5)var value1list.first()var resultvalue1value1println(result) }执行结果 2.使用let内置函数对集合的第一个元素相加 package Stage3fun main() {//使用…...

【C++入门到精通】C++入门 —— 模版(template)

阅读导航 前言一、模版的概念二、函数模版1. 函数模板概念2. 函数模板定义格式3. 函数模板的原理4. 函数模版的实例化🚩隐式实例化🚩显式实例化 5. 函数模板的匹配原则 三、类模板1. 类模板的定义格式2. 类模板的实例化 四、非类型模板参数1. 概念2. 定义…...

ARM汇编【3】:LOAD/STORE MULTIPLE PUSH AND POP

LOAD/STORE MULTIPLE 有时一次加载(或存储)多个值更有效。为此,我们使用LDM(加载多个)和STM(存储多个)。这些指令有一些变化,基本上只在访问初始地址的方式上有所不同。这是…...

Python之Qt输出UI

安装PySide2 输入pip install PySide2安装Qt for Python,如果安装过慢需要翻墙,则可以使用国内清华镜像下载,输入命令pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple PySide2,如下图, 示例Demo i…...

【1day】复现泛微OA某版本SQL注入漏洞

目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现 一、漏洞描述 泛微e-cology是一款由泛微网络科技开发的协同管理平台,支持人力资源、财务、行政等多功能管理和移动办公。泛微OA存在SQL注入漏洞,攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据…...

安卓系列机型-禁止卸载某个APP 防止误卸载软件 无需root权限

安卓系列机型-禁止安装某软件 防止“沉迷游戏的小孩”操作解析_安卓机器的博客-CSDN博客 上一期讲了如何禁止安装某个app。今天讲下如何禁止卸载某app。正好相反的操作。任何操作有利有弊。主要看使用者如何对待使用。 💔💔💔以腾讯的一款游…...

【算法系列篇】二分查找——这还是你所知道的二分查找算法吗?

文章目录 前言什么是二分查找算法1.二分查找1.1 题目要求1.2 做题思路1.3 Java代码实现 2.在排序数组中查找元素的第一个和最后一个位置2.1 题目要求2.2 做题思路2.3 Java代码实现 3.搜索插入位置3.1 题目要求3.2 做题思路3.3 Java代码实现 4.x的平方根4.1 题目要求4.2 做题思路…...

【前端从0开始】JavaSript——分支流程控制

流程控制 在任何一门程序设计语言中,都需要支持满足程序结构 化所需要的三种流程控制: ●顺序控制 ●分支控制(条件控制) ●循环控制 顺序控制:在程序流程控制中,最基本的就是顺序控制。程序会按照自上而下的顺序执行…...

Linux权限

Linux中一切皆文件,那么文件就应该有相对于的类型,而在Linux当中,类型不是直接看后缀来决定的。 -普通文件、文本、可执行、归档文件等d目录b块设备、block、磁盘c字符设备、键盘、显示器p管道文件s网络socket文件l链接文件 link 然后后面的九…...

PMP如何备考?学习方式这里有

预习阶段:强烈建议跟着习课视频学习(自己看书真的很难看懂),初步了解PMBOK,有个大致印象; 精讲阶段:这个时候就需要静下心来深入了解各个知识模块,不仅是看PMBOK,还要尽…...

【Java转Go】快速上手学习笔记(四)之基础篇三

目录 泛型内置泛型的使用切片泛型和泛型函数map泛型泛型约束泛型完整代码 接口反射协程特点WaitGroupgoroutine的调度模型:MPG模型 channel介绍语法:举例:channel遍历基本使用和协程一起使用案例一案例二 select...casemain.go 完整代码 文件…...

vue中form和table标签过长

form标签过长 效果&#xff1a; 代码&#xff1a; <el-form-item v-for"(item,index) in ticketEditTable1" :label"item.fieldNameCn" :propitem.fieldName :key"item.fieldNameCn" overflow"":rules"form[item.fieldName…...

java基础复习(第七日)

java基础复习(七) 1.MQ如何避免消息重复投递或重复消费&#xff1f; 在消息生产时&#xff0c;MQ 内部针对每条生产者发送到消息生成一个 inner-msg-id&#xff0c;作为去重的依据&#xff08;消息投递失败并重传&#xff09;&#xff0c;避免重复的消息进入队列&#xff1b;…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...