【CXL协议-控制和状态寄存器(8)】

8.0 控制和状态寄存器

Compute Express Link 设备控制和状态寄存器被映射到单独的空间:配置空间和内存映射空间。配置空间寄存器使用配置读取和配置写入进行访问。内存映射寄存器使用内存读取和内存写入进行访问。表 123 总结了本章中定义的寄存器位的属性。除非另有说明,否则这些属性的定义与 PCI Express 基本规范一致。
各种寄存器和数据结构中的所有数值始终以小端格式编码。
CXL 组件在将寄存器字段初始化为其默认值的硬件方面与 PCIe 具有相同的要求,但系统集成设备有明显的例外。有关详细信息,请参阅 PCI Express 基本规范。

如下图是对寄存器属性的一些解释:
在这里插入图片描述
在这里插入图片描述

8.1 配置空间寄存器

CXL 配置空间寄存器由 CXL 1.1 设备、CXL 2.0 设备、CXL 交换机和 CXL 2.0 根端口实现。CXL 1.1 上行和下行端口不会将任何寄存器映射到配置空间。

8.1.1 PCI Express 指定供应商特定扩展功能

(DVSEC)ID 分配 CXL 规范定义的配置空间寄存器被分组为块,每个块都被枚举为 PCI Express 指定供应商特定扩展功能 (DVSEC) 结构。DVSEC 供应商 ID 字段设置为 1E98h,以指示这些
功能结构由 CXL 规范定义。
DVSEC 修订 ID 字段表示 DVSEC 结构的版本。每当扩展结构以添加更多功能时,DVSEC 修订 ID 都会递增。在此过程中应保持向后兼容性。对于所有 n 值,DVSEC 修订 ID n+1 结构可以通过替换修订 ID n 中标记为保留的字段来扩展修订 ID n,但不得重新定义现有字段的含义。为较低修订 ID 编写的软件可以继续在具有较高修订 ID 的 CXL DVSEC 结构上运行,但无法利用新功能。
DVSEC ID 的以下值由 CXL 规范定义
在这里插入图片描述
在这里插入图片描述

  1. P- PCI Express 设备、D1 - CXL 1.1 设备、D2 - CXL 2.0 设备、LD - 逻辑设备、FMLD - Fabric Manager 拥有的 LD 0xFFFF、UP1 - CXL 1.1 上行端口 RCRB、DP1 - CXL 1.1 下行端口 RCRB、
    R - CXL 2.0 根端口、USP - CXL 交换机上行端口、DSP - CXL 交换机下行端口

8.1.2 CXL 数据对象交换 (DOE) 类型分配

数据对象交换 (DOE) 是 PCI SIG 定义的一种机制,用于主机与 PCIe 功能执行数据对象交换。
CXL 规范定义了以下 DOE 类型的值。CXL 规范定义的数据对象交换消息使用供应商 ID 1E98h。
在这里插入图片描述

  1. 强烈建议 CXL 2.0 设备支持合规性 DOE 类型。如果设备未实现合规性 DOE 类型,则应实现 PCIe DVSEC 以实现测试能力
    (第 14.16.1 节)。

8.1.3 CXL 设备的 PCIe DVSEC

注意:CXL 1.1 规范将此 DVSEC 称为“用于 Flex 总线设备的 PCIe DVSEC”,并在引用各种寄存器名称和字段时使用术语“Flex 总线”。CXL 2.0 规范重命名了 DVSEC 和寄存器/字段名称,将术语“Flex 总线”替换为术语“CXL”,同时保留了功能。
CXL 1.1 设备创建新的 PCIe 枚举层次结构。因此,它会产生新的根总线,并可以在此总线号上公开一个或多个 PCIe 设备号和功能号。这些被公开为根复合体集成端点 (RCiEP)。
设备 0、功能 0 的 PCIe 配置空间应包括 CXL PCI Express 指定供应商特定扩展功能 (DVSEC),如图 126 所示。设备 0、功能 0 DVSEC 中的功能、状态和控制字段控制整个 CXL 设备的 CXL 功能。
CXL 2.0 设备像标准 PCIe 端点一样枚举,并出现在 CXL 2.0 根端口或 CXL 交换机下方。它应在父端口的辅助总线号处公开一个 PCIe 设备号和一个或多个功能号。这些被公开为标准 PCIe 端点 (EP)。设备 0、功能 0 的 PCIe 配置空间应包括 CXL PCI Express 指定的供应商特定扩展功能 (DVSEC),如图 126 所示。设备 0、功能 0 DVSEC 中的功能、状态和控制字段控制整个 CXL 设备的 CXL 功能。
软件可以使用此 DVSEC 的存在来区分 CXL 设备和 PCIe 设备。因此,标准 PCIe 设备不得公开此 DVSEC。请参阅表 124 了解完整列表。
有关标准 DVSEC 寄存器字段的描述,请参阅 PCIe 规范。
在这里插入图片描述
为了宣传 CXL 功能,标准 DVSEC 寄存器字段应设置为下表所示的值。DVSEC 长度字段设置为 38h 字节,以容纳 DVSEC 中包含的寄存器。DVSEC ID 设置为 0h,以宣传这是用于 CXL 设备的 PCIe DVSEC 结构。DVSEC 修订 ID 0h 表示 CXL 1.1 规范中定义的结构。DVSEC 修订 ID 01h 表示本规范中定义的结构。DVSEC 修订 ID 01h 结构通过替换 CXL 1.1 规范中标记为保留的字段来扩展修订 ID 0h,但不会重新定义现有字段的含义。CXL 1.1 设备可以实现修订 ID 0 或 1。CXL 2.0 设备不允许实现修订 ID 0,必须实现修订 ID 1。
在这里插入图片描述

8.1.3.1 DVSEC CXL Capability(偏移 0Ah)

在这里插入图片描述
在这里插入图片描述

Bit 0: Cache_Capable:如果设置,则表示在 Flex Bus.CXL 模式下运行时支持 CXL.cache 协议。对于 MLD 的所有功能,该值必须为 0

Bit 1: IO_Capable:如果设置,则表示在 Flex Bus.CXL 模式下运行时支持 CXL.io 协议。必须为 1。

Bit 2: Mem_Capable:如果设置,则表示在 Flex Bus.CXL 模式下运行时支持 CXL.mem 协议。对于 MLD 的所有功能,该值必须为 1。

Bit 3: Mem_HwInit_Mode:如果设置,则表示此支持 CXL.mem 的设备在设备上的硬件和固件的帮助下初始化内存。如果清除,则表示内存由主机软件(例如设备驱动程序)初始化。
如果 CXL.mem_Capable=0,则必须忽略此位。

Bit 5:4: HDM_Count:由 CXL 设备实现并通过此功能报告的 HDM 范围数。
00 - 零范围。如果 CXL.mem Capable=1,则此设置非法。
01 - 一个 HDM 范围。
10 - 两个 HDM 范围
11 - 保留
如果 CXL.mem_Capable=0,则此字段必须返回 00

Bit 6:缓存回写和无效功能:如果设置,则表示设备在 CXL Control2 寄存器中实现禁用缓存并启动缓存回写和无效控制位,在 CXL Status2 寄存器中实现缓存无效状态位。如果 CXL.Cache_Capable=1,则所有 CXL 2.0 设备都应设置此功能位。

Bit 7: CXL 复位功能:如果设置,表示设备支持 CXL 复位并在此寄存器中实现 CXL 复位超时字段、在 CXL Control2 寄存器中启动 CXL 复位位并在 CXL Status2 寄存器中实现 CXL 复位完成状态。此字段必须为 MLD 的所有功能报告相同的值。

Bit 10:8:CXL 重置超时:如果设置了 CXL 重置能力位,则此字段表示设备完成 CXL 重置可能需要的最长时间。如果 CXL 重置 Mem Clr 能力位为 1,则此时间还考虑了清除或随机化易失性 HDM 范围所需的时间。如果在此时间期限过后未设置 CXL Status2 寄存器中的 CXL 重置完成状态位,则软件可能会认为 CXL 重置失败。此值对于 MLD 的所有功能都必须相同。
编码:
000b - 10 毫秒
001b - 100 毫秒
010b - 1 秒
011b - 10 秒
100b - 100 秒
所有其他 - 保留

Bit 11:CXL 重置内存清除功能:设置后,设备能够在 CLX 重置期间清除或随机化易失性 HDM 范围。

Bit 12:保留

Bit13:多逻辑设备:如果设置,则表示这是 MLD 中的逻辑设备,包括 FM 拥有的 LD。如果清除,则表示这是 SLD。

Bit14:Viral_Capable:如果设置,则表示 CXL 设备支持病毒处理。对于所有设备,此值必须为 1。

Bit15:PM 初始化完成报告功能:如果设置,则表示 CXL 设备能够支持电源管理初始化完成标志。所有 CXL 2.0 设备都应设置此功能位。CXL 1.1 设备可以实现此功能。
此功能不适用于交换机和根端口。交换机和根端口应将此位硬连线为 0。

8.1.3.2 DVSEC CXL Control (偏移 0Ch)

在这里插入图片描述
Bit0:Cache_Enable:设置后,在 Flex Bus.CXL 模式下启用 CXL.cache 协议操作。由 CONFIG_LOCK 锁定。
此位的默认值为 0。

Bit1:IO_Enable:设置后,在 Flex Bus.CXL 模式下启用 CXL.io 协议操作。
此位始终返回 1

Bit2:Mem_Enable:设置后,在 Flex Bus.CXL 模式下启用 CXL.mem 协议操作。由 CONFIG_LOCK 锁定。
此位的默认值为 0。

Bit7:3:Cache_SF_Coverage:设备性能提示。由 CONFIG_LOCK 锁定。
0x00:表示主机上没有监听过滤器覆盖
对于所有其他 N 值:表示主机上的监听过滤器覆盖范围为 2^(N+15d) 字节。
例如,如果此字段包含值 5,则表示监听过滤器覆盖范围为 1 MB。
此字段的默认值为 0。

Bit10:8:Cache_SF_Granularity:设备的性能提示。由 CONFIG_LOCK 锁定。
000:表示主机上的 64B 粒度跟踪
001:表示主机上的 128B 粒度跟踪
010:表示主机上的 256B 粒度跟踪
011:表示主机上的 512B 粒度跟踪
100:表示主机上的 1KB 粒度跟踪
101:表示主机上的 2KB 粒度跟踪
110:表示主机上的 4KB 粒度跟踪
111:保留
此字段的默认值为 0。

Bit11:Cache_Clean_Eviction:设备性能提示。由 CONFIG_LOCK 锁定。
0:表示需要从设备缓存中彻底清除缓存以获得最佳性能
1:表示不需要从设备缓存中彻底清除缓存以获得最佳性能
此位的默认值为 0。

Bit13:12:保留

Bit14:Viral_Enable:设置后,在 CXL 设备中启用病毒处理。
由 CONFIG_LOCK 锁定。
如果为 0,CXL 设备可能会忽略其收到的病毒。
此位的默认值为 0。

Bit15:保留

8.1.3.3 DVSEC CXL Status (偏移 0Eh)

在这里插入图片描述
DVSEC CXL Control2 (偏移 10h)
在这里插入图片描述
Bit0:禁用缓存:设置为 1 时,设备将不再在其本地缓存中缓存新修改的行。设备将继续正确响应 CXL.cache 事务。
此位的默认值为 0。

Bit1:启动缓存写回和失效:设置为 1 时,设备应将所有修改过的行写回本地缓存中并使所有行失效。设备应根据 CXL.Cache 协议的要求向主机发送 CacheFlushed 消息,以表明它不保存任何修改过的行。
如果在禁用缓存 = 0 时设置此位,则设备行为未定义。
当软件读取此位时,始终返回 0 值。写入 0 将被忽略。

Bit2:启动 CXL 复位:设置为 1 时,设备应按照第 9.7 节中的定义启动 CXL 复位。软件读取此位时,该位始终返回 0 值。写入 0 将被忽略。如果软件在上一次 CXL 复位正在进行时设置此位,则结果不确定。

Bit3:CXL 重置 Mem Clr 启用:设置后,CXL 重置 Mem Clr 能力返回 1,设备应在 CXL 重置操作中清除或随机化易失性 HDM 范围。当 CXL 重置 Mem Clr 能力清除时,此位将被忽略,并且易失性 HDM 范围可能会或可能不会在 CXL 重置期间被清除或随机化。

Bit15:4:保留

8.1.3.5 DVSEC CXL Status2 (偏移 12h)

在这里插入图片描述
Bit0:缓存无效:设置后,设备保证不保留任何有效行,并且禁用缓存 = 1。当禁用缓存 = 0 时,此位应读为 0。

Bit1:CXL 复位完成:设置后,设备已成功完成第 9.7 节中定义的 CXL 复位。
在启动 CXL 复位流程之前,设备应在启动 CXL 复位位从 0 转换为 1 时清除此位。

Bit2:CXL 重置错误:设置后,设备已完成 CXL 重置但存在错误。设备错误记录中可能提供更多信息(图 8.2.9.1.1)。主机软件或 Fabric Manager 可以选择重新发出 CXL 重置。
在启动 CXL 重置流程之前,设备应在启动 CXL 重置位从 0 转换为 1 时清除此位。

Bit14:2:保留

Bit15:电源管理初始化完成:设置后,表示设备已成功完成图 16 中描述的电源管理初始化流程,并已准备好处理各种电源管理消息。
如果在链接后 100 毫秒内未设置此位,软件可能会断定电源管理初始化失败,并可能发出辅助总线复位以强制重新初始化链接和电源管理。

8.1.3.6 DVSEC CXL Lock (Offset 14h)

在这里插入图片描述

8.1.3.7 DVSEC CXL Capability2 (Offset 16h)

在这里插入图片描述

8.1.3.8 DVSEC CXL 范围寄存器

这些寄存器不适用于 FM 拥有的 LD。
如果 CXL.mem Capable=1,则必须实现 DVSEC CXL 范围 1 寄存器集。如果 (CXL.mem Capable=1 和 HDM_Count=10b),则必须实现 DVSEC CXL 范围 2 寄存器集。每组包含 4 个寄存器 - Size High、Size Low、Base High、Base Low。
允许具有 CXL.mem 功能的设备报告零内存大小。

8.1.3.8.1 DVSEC CXL Range 1 Size High (Offset 18h)

在这里插入图片描述

8.1.3.8.2 DVSEC CXL Range1 Size Low (Offset 1Ch)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.1.3.8.3 DVSEC CXL Range 1 Base High (Offset 20h)

在这里插入图片描述

8.1.3.8.4 DVSEC CXL Range 1 Base Low (Offset 24h)

在这里插入图片描述
如果满足以下两个方程式,则无法实现CXL HDM解码器功能寄存器的CXL.MEM功能的设备将主机访问到其本地HDM内存中的地址A -Memory_base [63:28] <=(a> 28)<(a> 28)< memory_ base [63:28]+memory_size [63:28] memory_active and mem_enable = 1
,其中>>代表一个位右移操作。
实现CXL HDM解码器功能寄存器的CXL.MEM功能的设备遵循上述行为,只要HDM解码器在CXL HDM HDM解码器全局控制寄存器中启用位为零即可。
如果地址 A 没有实际内存支持(例如,内存小于 256 MB 的设备),则未实现 CXL HDM 解码器功能寄存器的设备必须妥善处理这些访问,即在读取时返回所有 1 并删除写入。
禁止别名(将多个主机物理地址 (HPA) 映射到单个设备物理地址)。

8.1.3.8.5 DVSEC CXL Range 2 Size High (Offset 28h)

在这里插入图片描述

8.1.3.8.6 DVSEC CXL Range 2 Size Low (Offset 2Ch)

在这里插入图片描述
在这里插入图片描述

8.1.3.8.7 DVSEC CXL Range 2 Base High (Offset 30h)

在这里插入图片描述

8.1.3.8.8 DVSEC CXL Range 2 Base Low (Offset 34h)

在这里插入图片描述

8.2 Memory Mapped Registers

CXL 内存映射寄存器位于表 137 中指定的六个通用区域中。值得注意的是,CXL 1.1 下行端口和 CXL 1.1 上行端口无法通过 PCIe 配置空间发现。相反,CXL 1.1 下行和上行端口寄存器是使用 PCIe 根复合体寄存器块 (RCRB) 实现的。此外,CXL 1.1 下行和上行端口各自实现一个 MEMBAR0 区域(也称为组件寄存器)来托管寄存器,用于配置与相应端口关联的 CXL 子系统组件。MEMBAR0 寄存器(图 134)保存组件寄存器的地址。
CXL 1.1 内存映射寄存器区域出现在内存空间中,如图 133 所示。请注意,RCRB 不与 MEMBAR0 区域重叠。另请注意,上行端口的 MEMBAR0 区域必须位于下行端口的内存基址和限制寄存器指定的范围内。只要满足这些要求,RCRB 如何映射到内存空间的细节是特定于实现的。
软件应使用 CXL.io 内存读取和写入来访问本节中定义的内存映射寄存器。除非另有规定,否则软件应根据以下情况限制访问宽度:
• 32 位寄存器应以 1 字节、2 字节或 4 字节的数量进行访问。
• 64 位寄存器应以 1 字节、2 字节、4 字节或 8 字节的数量进行访问
• 地址应为访问宽度的倍数,例如,当以 4 字节的数量访问寄存器时,地址应为 4 的倍数。
• 访问应映射到连续的字节。
如果不遵循这些规则,则行为未定义
Table 137. CXL Memory Mapped Registers Regions
在这里插入图片描述
Figure 133. CXL 1.1 Memory Mapped Register Regions
在这里插入图片描述

8.2.1 CXL 1.1 Upstream and Downstream Port Registers

8.2.1.1 CXL 1.1 Downstream Port RCRB

CXL 1.1 下行端口 RCRB 是一个 4K 内存区域,其中包含基于 PCIe 规范为根端口定义的寄存器的寄存器。图 134 说明了下行端口的 CXL RCRB 布局。除了第一个 DWORD 之外,CXL DP RCRB 的前 64 个字节实现了 PCIe 类型 1 配置头中的寄存器。RCRB 的第一个 DWORD 包含一个 NULL 扩展功能 ID,版本为 0h,以及一个下一个功能偏移指针。64 位 MEMBAR0 在偏移量 10h 和 14h 处实现;这指向一个私有内存区域,该区域托管用于配置下行端口子系统组件的寄存器,如表 137 中所述。通过跟踪指针的链接列表可以发现支持的 PCIe 功能和扩展功能。支持的 PCIe 功能映射到从 040h 到 0FFh 的偏移范围。支持的 PCIe 扩展功能映射到从 100h 到 FFFh 的偏移范围。表 138 列出了 CXL 下行端口支持的 PCIe 功能和扩展功能;相关寄存器的定义请参阅 PCIe 5.0 基本规范。

Figure 134. CXL Downstream Port RCRB
在这里插入图片描述
Table 138. CXL 1.1 Downstream Port PCIe Capabilities and Extended Capabilities (Sheet
1 of 2)
在这里插入图片描述
Table 138. CXL 1.1 Downstream Port PCIe Capabilities and Extended Capabilities (Sheet
2 of 2)
在这里插入图片描述

  1. 注意:如果设计选择对 PCIe 和 CXL 模式使用通用代码库,则软件有责任了解在 CXL 模式下不适用的功能内的寄存器。
8.2.1.2 CXL 1.1 Upstream Port RCRB

CXL 1.1 上行端口 RCRB 是一个 4K 内存区域,其中包含基于 PCIe 规范定义的寄存器的寄存器。上行端口捕获链路初始化后收到的第一个内存读取的高位地址位 [63:12] 作为上行端口 RCRB 的基地址。图 135 说明了上行端口的 CXL RCRB 布局。除了第一个 DW 之外,CXL UP RCRB 的前 64 个字节实现了 PCIe 类型 0 配置头中的寄存器。RCRB 的第一个 DW 包含一个 NULL 扩展功能 ID,版本为 0h 和一个下一个功能偏移指针。64 位 BAR(标记为 MEMBAR0)在偏移量 10h 和 14h 处实现;它指向一个内存区域,该区域托管用于配置
上行端口子系统 CXL.mem 的寄存器,如表 137 中所述。通过跟踪指针的链接列表可以发现支持的 PCIe
功能和扩展功能。支持的 PCIe 功能映射到从 040h 到
0FFh 的偏移范围。支持的 PCIe 扩展功能映射到从
100h 到 FFFh 的偏移范围。CXL 上行端口支持的 PCIe 功能和扩展功能列于表 139 中;请参阅 PCIe 5.0 基本规范以了解相关寄存器的定义。

作为 PCI Type 0 标头定义一部分的以下标准寄存器被视为保留的,对 CXL 1.1 上行端口的行为没有影响:
• 命令寄存器(偏移量 04h)
• 状态寄存器(偏移量 06h)。
根据 PCIe 基本规范,PCI Express 功能中的以下寄存器标记为 RCiEP 保留,不得由 CXL 1.1 设备的设备 0、功能 0 实现。
• 链路寄存器 - 链路功能寄存器、链路控制寄存器、链路状态寄存器、链路功能 2 寄存器、链路控制 2 寄存器和链路状态 2 寄存器
• 插槽寄存器 - 插槽功能寄存器、插槽控制寄存器、插槽状态寄存器、插槽功能 2 寄存器、插槽控制 2 寄存器和插槽状态 2 寄存器
• 根端口寄存器 - 根功能寄存器、根控制寄存器和根状态寄存器。
软件必须引用上游端口 RCRB PCI Express 功能结构中的链路寄存器,以便发现链路功能和链路状态;并配置链路属性。这些寄存器应遵循 PCIe 基本规范对上游交换机端口的定义。如果软件希望启用 CXL.io L1,则必须在链路控制寄存器中设置 ASPM 控制字段。
上行端口的设备功能寄存器、设备控制寄存器、设备状态寄存器、设备功能 2 寄存器、设备控制 2 寄存器和设备状态 2 寄存器中的所有字段均被保留。
上行端口功能寄存器中的设备/端口类型、已实现的插槽和中断消息编号字段被保留。
Figure 135. CXL 1.1 Upstream Port RCRB
在这里插入图片描述

Table 139. CXL 1.1 Upstream Port PCIe Capabilities and Extended Capabilities
在这里插入图片描述

  1. 注意:如果设计选择使用 PCIe 和 CXL 模式的通用代码库,则软件有责任了解在 CXL 模式下不适用的功能内的寄存器
8.2.1.3 Flex Bus Port DVSEC

所有 CXL 端口均实现 Flex 总线端口 DVSEC。此 DVSEC 位于 1.1 上行和 1.1 下行端口的 RCRB 中。CXL 1.1 端口可以实现此 DVSEC 的 DVSEC 修订版本 = 0 或 1。完整列表请参见表 124。如果 CXL 1.1 端口实现修订版本 = 1,则软件应忽略下面指定为“为 CXL 1.1 保留”的某些字段。
此 DVSEC 还位于 CXL 2.0 根端口、上行交换机端口、下行交换机端口和 CXL 2.0 设备的主要功能(设备 0、功能 0)的配置空间中。CXL 2.0 组件应报告此 DVSEC 的 DVSEC 修订版本 = 1。
图 136 显示了 Flex 总线端口 DVSEC 的布局,表 140 显示了应如何设置 header1 和 header2 寄存器。以下小节详细介绍了 Flex Bus Port DVSEC 中定义的寄存器。

Figure 136. PCIe DVSEC for Flex Bus Port
在这里插入图片描述
Table 140. PCI Express DVSEC Header Registers Settings for Flex Bus Port

在这里插入图片描述

8.2.1.3.1 DVSEC Flex Bus Port Capability (Offset 0Ah)

注意:设备的 Flex Bus DVSEC 中还存在 Mem_Capable、IO_Capable 和 Cache_Capable 字段。这为未来的可扩展性提供了保障,即多个设备(每个设备可能具有不同的功能)可以安装在单个端口后面
在这里插入图片描述

略。。。

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

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

相关文章

人员身份级的数据中心机房作业随工

电信运营商的数据中心机房作为承载各类业务系统的物理基础&#xff0c;其运维安全直接关系到业务的连续性和数据的安全性。传统的机房管理方式依赖人工审核和监督&#xff0c;存在效率低下、安全隐患多等问题。因此&#xff0c;通过综合运用物联网、大数据分析和人工智能技术&a…

机器学习AI大模型的开源与闭源:哪个更好?

文章目录 前言一、开源AI模型1.1 开源的优点1.2 开源的缺点 二、闭源AI模型2.1 闭源的优点2.2 闭源的缺点 三、开源与闭源的平衡3.1 开源与闭源结合的案例3.2 开源与闭源的战略选择 小结 前言 在过去的几年里&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xf…

Docker 基础使用(3) 存储卷

文章目录 存储卷的含义存储卷的分类存储卷的作用存储卷的使用存储卷实际使用案例 ---- MySQL灾难恢复存储卷的局限 Docker 基础使用&#xff08;0&#xff09;基础认识 Docker 基础使用 (1) 使用流程概览 Docker 基础使用&#xff08;2&#xff09; 镜像与容器 Docker 基础使用…

LeetCode24_两两交换链表中的节点

. - 力扣&#xff08;LeetCode&#xff09; 一、题目&#xff1a; 二、模拟 1. 第一步 2. 第二步&#xff1a;current next.next 3. 第三步: next.next current 4. 第四步&#xff1a;pre.next next; 到这里为止实现了两个节点的交换 5. 第五步&#xff1a;pre current;…

【机器学习】朴素贝叶斯算法及其应用探索

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 朴素贝叶斯算法及其应用探索引言1. 朴素贝叶斯基本概念1.1 贝叶斯定理回顾1.2 朴…

基于 Spring Boot 博客系统开发(十三)

基于 Spring Boot 博客系统开发&#xff08;十三&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;十二&#xff09;&…

【Linux-Uboot】

Linux-Uboot ■ Uboot使用 串口软件&#xff08;超级终端&#xff09;接受文件■ ■ Uboot使用 串口软件&#xff08;超级终端&#xff09;接受文件 添加链接描述 ■

NGINX之location和rewrite

一.NGINX常用的正则表达式 二.Location location作用:对访问的路径做访问控制或者代理转发 1.location 常用的匹配规则&#xff1a; 进行普通字符精确匹配&#xff0c;也就是完全匹配^~ / 表示普通字符匹配。使用前缀匹配。如果匹配成功&#xff0c;则不再匹配其它 …

JVM学习-监控工具(一)

使用数据说明问题&#xff0c;使用知识分析问题&#xff0c;使用工具处理问题 无监控&#xff0c;不调优&#xff01; 命令行工具 在JDK安装目录下&#xff0c;可以查看到相应的命令行工具&#xff0c;如下图 jps(Java Process Status) 显示指定系统内所有的Hotpot虚拟机…

【自然语言处理】文本情感分析

文本情感分析 1 任务目标 1.1 案例简介 情感分析旨在挖掘文本中的主观信息&#xff0c;它是自然语言处理中的经典任务。在本次任务中&#xff0c;我们将在影评文本数据集&#xff08;Rotten Tomato&#xff09;上进行情感分析&#xff0c;通过实现课堂讲授的模型方法&#x…

OpenStack无效数据清空脚本

​​​​​​​介绍 在以openstack为底层开发的一些项目中&#xff0c;常常会遇到项目中数据与openstack数据不同步的问题&#xff0c;为了简化清空无效数据的繁琐&#xff0c;提供以下脚本便于运维操作。 环境变量 [rootcloud ~]# cat admin.sh export OS_USERNAMEadmin ex…

蓝图collapseNodes很有用

学到了&#xff0c;选中N个节点后&#xff0c;再右键collapseNode&#xff0c;可以使代码很清晰&#xff0c;双击后可以看到相应的代码&#xff0c;具有层次感。

【python科学文献计量】关于中国知网检索策略的验证,以事故伤害严重程度检索为例

关于中国知网检索策略的验证,以事故伤害严重程度检索为例 1 背景2 文献下载3 数据处理1 背景 由于要进行相关研究内容的综述,需要了解当前我国对于事故伤害严重程度的研究现状,采用国内较为知名的检索网站(中国知网)进行文献数据集检索 由于最近知网出bug,检索的结果在…

【最新鸿蒙应用开发】——使用axios完成手机号注册业务

使用Axios请求实现目标效果图&#xff1a; 短信验证码登录 校验图形验证码&#xff0c;校验通过 发送短信验证码到用户手机上&#xff0c;可通过在线 WebSocket查看&#xff1a;wss://guardian-api.itheima.net/verifyCode 根据 手机号 短信验证码 实现登录 更新图形验证码…

日本指数实时API接口

日本 指数 实时API接口 # Restful API https://tsanghi.com/api/fin/index/JPN/realtime?token{token}&ticker{ticker}指定指数代码&#xff0c;获取该指数的实时行情&#xff08;开、高、低、收、量&#xff09;。 更新周期&#xff1a;实时。 请求方式&#xff1a;GET。…

CV每日论文--2024.6.4

1、Mixed Diffusion for 3D Indoor Scene Synthesis 中文 标题&#xff1a;用于 3D 室内场景合成的混合扩散 简介&#xff1a;这篇论文提出了一种名为MiDiffusion的混合离散-连续扩散模型,用于从给定的房间类型、平面图和可能存在的物体中合成逼真的3D室内场景。 作者指出,该…

【Unity实战篇 】 | Unity实现UGUI颜色渐变,支持透明渐变

前言 【Unity实战篇 】 | Unity实现UGUI颜色渐变&#xff0c;支持透明渐变一、双层颜色渐变1.1 组件属性面板1.2 效果及代码 二、多层颜色渐变2.1 组件属性面板2.2 效果及代码 总结 前言 在Unity中UGUI的实现图片和文字颜色渐变效果是一个很常见的需求。下面就来看一下颜色渐变…

机器学习中的集成学习

&#x1f4ac;内容概要 1 集成学习概述及主要研究领域 2 简单集成技术  2.1 投票法  2.2 平均法  2.3 加权平均 3 高级集成技术  3.1 Bagging  3.2 Boosting  3.3 Bagging vs Boosting 4 基于Bagging和Boosting的机器学习算法  4.1 sklearn中的Bagging算法  4.2 sklea…

1961. 检查字符串是否为数组前缀 - 力扣

1. 题目 给你一个字符串 s 和一个字符串数组 words &#xff0c;请你判断 s 是否为 words 的 前缀字符串 。 字符串 s 要成为 words 的 前缀字符串 &#xff0c;需要满足&#xff1a;s 可以由 words 中的前 k&#xff08;k 为 正数 &#xff09;个字符串按顺序相连得到&#xf…

大型语言模型的工作原理(LLM:从零学起)

目录 一、说明 二、LLM如何运作 三、预训练&#xff1a;基本模型 四、微调&#xff1a;培训助手 五、RLHF&#xff1a;从人类反馈中强化学习 六、提示工程 七、总结 一、说明 这是我们谈论LLM系列的第二篇文章。在本文中&#xff0c;我们旨在为大型语言模型 &#xff08;LLM&am…