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

DP读书:鲲鹏处理器 架构与编程(八)3.1鲲鹏处理器片上系统与Taishan处理器内核架构

鲲鹏处理器片上系统架构

  • 一、鲲鹏处理器片上系统与Taishan处理器内核架构
    • 1. 鲲鹏处理器片上系统概况
      • a. 鲲鹏处理器片上系统与鲲鹏芯片家族
      • b. 鲲鹏920处理器片上系统的组成部件
      • c. 鲲鹏920处理器片上系统的特征
      • d. 鲲鹏920处理器片上系统的逻辑结构
    • 2. Taishan V110 处理器内核微架构
      • a. Taishan V110 处理器内核的特征
      • b. Taishan V110 处理器内核的功能结构
    • 3. 鲲鹏920处理器片上系统的逻辑结构
      • a. 处理器内核集群
      • b. I/O集群
      • c. 超级内核集群
      • d. 超级I/O集群
      • e. 鲲鹏920系统的部件互联
    • 4. 鲲鹏920处理器片上系统的内存存储系统
      • a. 鲲鹏920处理器存储系统的层次结构
      • b. 鲲鹏920处理器的片上系统的L3 Cache
      • c. 鲲鹏920处理器的片上系统的主存系统
      • d. 鲲鹏920处理器的片上系统的DDR控制器
      • e. 鲲鹏920处理器片上系统的NUMA架构
      • f. 鲲鹏920处理器的片上系统的地址映射与变换

处理器体系结构,是一个偏底层的内容,但这是任一计算机系统的底层。
系统的性能、生态和功能很大程度上都依赖于计算机系统底层——处理器体系结构。任何一个系统程序员、固件设计者、应用程序员 甚至 服务器管理员,如果想要充分利用现代高性能处理器的硬件性能、进行高效的软件运行,都必须理解处理器体系结构。

Kupeng处理器官网截图

一、鲲鹏处理器片上系统与Taishan处理器内核架构

1. 鲲鹏处理器片上系统概况

Kupeng920

a. 鲲鹏处理器片上系统与鲲鹏芯片家族

鲲鹏处理器片上系统(Kunpeng 920) 是华为公司基于ARM架构研发的企业级处理器产品,主要应用于“计算、存储、传输、管理、人工智能”等五个应用领域。鲲鹏芯片家族是华为海思自研的芯片家族的总称,其中包括鲲鹏系列处理器芯片、昇腾人工智能芯片、固态硬盘控制芯片、智能融合网络芯片及智能管理芯片等。这个家族中的每个成员都有各自的特点和功能,共同为计算、存储、传输、管理和人工智能应用提供支持。

总结来说,鲲鹏处理器片上系统是鲲鹏芯片家族中的一个重要成员,而鲲鹏芯片家族则是华为在多个领域自主研发的芯片产品的总称。

b. 鲲鹏920处理器片上系统的组成部件

详细数据

c. 鲲鹏920处理器片上系统的特征

鲲鹏920处理器片上系统具有以下特征:

  1. 基于ARMv8.2架构设计,支持64位多核服务器处理器。
  2. 采用可扩展向量扩展(SVE)技术,能够在低功耗的情况下提供强大的性能和并行计算能力。
  3. 支持多种互连协议,包括CCIX和PCIe等,适用于不同类型的服务器系统。
  4. 集成16个A76处理器核心,主频最高可达2.6GHz,每个核心均可支持多线程。
  5. 采用创新的L3缓存技术,有效提升数据传输速率。
  6. 支持高达8通道内存控制器,每个通道可支持DDRx内存。
ARMv8.2架构
64位多核服务器处理器
SVE技术
互连协议
CCIX
PCIe
A76处理器核心
多线程
L3缓存技术
内存控制器
DDRx内存

d. 鲲鹏920处理器片上系统的逻辑结构

鲲鹏920处理器片上系统的逻辑结构主要包括以下几个部分:

  1. CPU:鲲鹏920处理器片上系统由两个CPU DIE(硅片上独立执行特定任务的独立单元)组成,每个CPU DIE包含4个Cluster(计算簇),每个Cluster包含2个Core(核心)。因此,整个处理器包含8个Core。
  2. Cache:每个Core都配备了L1和L2级Cache,L1 Cache又分为指令Cache和数据Cache,L2 Cache是共享的。此外,所有Core共享L3级Cache。
  3. DDR控制器:鲲鹏920处理器片上系统配备了8个DDR4通道,用于内存存储和数据访问。
  4. I/O子系统:鲲鹏920的I/O子系统通过IO DIE进行扩展,支持多种互连协议,包括CCIX和PCIe等,适用于不同类型的服务器系统。同时,鲲鹏处理器还支持基于PCle 4.0的设备扩展,可支持网卡、GPU等板卡。
  5. 中断子系统:鲲鹏920的中断子系统在兼容ARM GIC规范的基础上,实现了线中断、消息中断支持。
CPU DIE
Cluster
Cluster
Core
Core
Core
Core
L1 Cache
L1 Cache
L1 Cache
L1 Cache
L2 Cache
L3 Cache
DDR控制器
DDR4通道
DDR4通道
DDR4通道
DDR4通道
DDR4通道
DDR4通道
DDR4通道
DDR4通道
I/O子系统
IO DIE
CCIX
PCIe
其他互连协议
中断子系统
ARM GIC规范
线中断
消息中断

2. Taishan V110 处理器内核微架构

a. Taishan V110 处理器内核的特征

Taishan V110 是一种基于 ARM 架构的处理器内核微架构。它是由华为公司开发的,主要用于其服务器产品。具体来说,Taishan V110 处理器内核是基于 ARM v8.2 架构的,支持 64 位多核服务器处理器。它采用了可扩展向量扩展(SVE)技术,可以在低功耗的情况下提供强大的性能和并行计算能力。Taishan V110 处理器内核微架构包括多个核心,每个核心可以支持多线程。它还采用了创新的 L3 缓存技术,以有效提升数据传输速率。此外,该处理器内核还支持高达 8 通道内存控制器,每个通道可以支持 DDRx 内存。

Taishan V110 处理器内核微架构是一种高性能、低功耗的 ARM 服务器处理器内核,适用于多种计算和数据处理应用。

b. Taishan V110 处理器内核的功能结构

Taishan V110 处理器内核的功能结构包括以下部分:

  1. 取指(Instruction Fetch)部件:负责从 L1 I Cache 取出指令并向指令译码部件发送指令,每个周期最多发送 4 条指令。支持动态分支预测和静态分支预测。集成了 64KB 的 4 路组相联 L1 I Cache,Cache 行大小为 64B,其数据 RAM 和标记 RAM 每 8 个二进制位含 1 位奇偶校验保护位。
> 取指(Instruction Fetch)部件是计算机处理器中的一个关键部分,负责从一级指令缓存(L1 I Cache)中取出指令,并将这些指令发送到指令译码部件。每个周期,该部件最多可以发送4条指令。
取指部件
L1 I Cache
指令译码部件
指令获取
动态分支预测
静态分支预测
4路组相联缓存
存储块1
存储块2
存储块3
存储块4
读写操作
缓存行大小
64KB
数据RAM
标记RAM
奇偶校验保护位
  1. 指令译码(Instruction Decode)部件:负责接收来自取指部件的指令,并进行指令解码,每个周期最多发送 4 条解码后的指令。
2023-08-18 2023-08-18 2023-08-19 2023-08-19 2023-08-20 2023-08-20 2023-08-21 2023-08-21 2023-08-22 2023-08-22 2023-08-23 2023-08-23 2023-08-24 指令接收 指令解码 发送指令1 发送指令2 发送指令3 发送指令4 接收和解码指令 发送解码后的指令 指令译码部件
  1. 指令分发(Instruction Dispatch)部件:负责将解码后的指令发送到各个执行单元,每个周期最多发送 4 条指令。

  2. 整数执行(Integer Execute)部件:负责执行整数运算指令,包括算术运算、逻辑运算等。

  3. 加载/存储单元(Load/Store Unit):负责数据在寄存器和内存之间的传输,包括加载和存储指令的执行。

  4. 第二级存储系统(L2 Memory System):负责管理 L2 Cache,包括数据的读取和写入。

  5. 增强的 SIMD 与浮点运算单元(Advanced SIMD and Floating Point Unit):负责执行 SIMD 和浮点运算指令。

  6. 通用中断控制器 CPU 接口(GIC CPU Interface):负责与通用中断控制器进行通信,处理来自外部设备的中断请求。

  7. 通用定时器(Generic Timer):负责计时和定时操作。

  8. PMU 及调试与跟踪部件(Debug and Trace):负责性能监控、调试和跟踪操作。

以上是 Taishan V110 处理器内核的主要功能结构。处理器内核的各个部件相互协作,共同完成处理器的运算和控制任务。

3. 鲲鹏920处理器片上系统的逻辑结构

a. 处理器内核集群

鲲鹏920处理器片上系统的逻辑结构中,处理器内核集群是指多个处理器内核的集合,这些内核通过共享缓存和互连通道相互通信和协作

在鲲鹏920处理器片上系统中,内核集群是处理器内核之间的逻辑组合方式,每个集群由4个核心组成,每个核心都支持多线程。这种内核集群的设计有助于提高处理器的并行处理能力和整体性能。

通过内核集群的设计,处理器可以更好地平衡负载和处理任务,同时保持高效率和低功耗。这种逻辑结构也有助于提高处理器的响应速度和吞吐量,从而满足不同应用场景的需求。

鲲鹏920处理器片上系统的内核集群是处理器内核之间的逻辑组合方式,它有助于提高处理器的并行处理能力和整体性能,适用于各种高性能计算和数据处理应用。

b. I/O集群

在鲲鹏920处理器片上系统中,I/O集群是负责处理和管理I/O(输入/输出) 请求的逻辑组件。I/O集群通过与I/O子系统进行通信,实现对输入/输出设备的控制和管理。

I/O集群通常包括以下功能:

1. 设备驱动程序:I/O集群中包含多个设备驱动程序,用于与不同类型的I/O设备进行通信。这些驱动程序负责与设备的硬件接口进行交互,实现数据的传输和控制。
2. 中断处理:I/O集群负责处理来自I/O设备的中断请求。当设备完成一项任务或发生特定事件时,会向处理器发送中断请求。I/O集群接收这些请求并通知操作系统进行处理。
3. 数据传输管理:I/O集群负责数据的传输和管理。它可以将数据从I/O设备读取到处理器,或将数据从处理器发送到I/O设备。I/O集群还支持数据缓冲和数据校验等功能,以确保数据的准确性和完整性。
4. 虚拟化支持:I/O集群还支持虚拟化技术,可以同时与多个虚拟机进行通信。通过虚拟化技术,多个虚拟机可以共享有限的物理资源,并实现高效的I/O操作。

通过I/O集群的设计,处理器可以更好地管理和控制I/O设备的操作,从而提高系统的整体性能和可靠性。同时,I/O集群还可以简化设备驱动程序的开发和管理工作,降低系统维护的复杂度。

鲲鹏920处理器片上系统
I/O集群
设备驱动程序
中断处理
数据传输管理
虚拟化支持
不同类型的I/O设备
I/O设备的中断请求
I/O设备
多个虚拟机

c. 超级内核集群

超级内核集群(Super Kernel Cluster) 是鲲鹏920处理器片上系统的一个核心组件,它包含了多个内核集群和I/O集群,用于实现高性能计算和数据处理。

每个超级内核集群包含6个内核集群、2个I/O集群和4个DDR控制器。每个内核集群包含4个核心,每个核心支持多线程。这样的设计有助于提高处理器的并行处理能力和整体性能。

超级内核集群的每个内核集群都集成了L3 Cache,分为L3 Cache TAG和L3 Cache DATA两部分。L3 Cache TAG集成在每个内核集群中,用于降低监听延迟,L3 Cache DATA则直接连接片上总线。这样的设计可以提高数据传输的效率和准确性。

此外,超级内核集群还配置了一个通用中断控制器分发器(GICD) 模块,兼容ARM的GICv4规范,用于处理多芯片系统Cache一致性协议。

通过超级内核集群的设计,鲲鹏920处理器片上系统可以更好地平衡负载和处理任务,同时保持高效率和低功耗,适用于各种高性能计算和数据处理应用。

d. 超级I/O集群

超级I/O集群(Super I/O Cluster) 是鲲鹏920处理器片上系统的一个组件,它负责处理和管理I/O(输入/输出)请求,并与外部设备进行通信。

超级I/O集群通过与I/O子系统进行通信,实现对输入/输出设备的控制和管理。它包含多个I/O集群,每个I/O集群包含多个设备驱动程序,用于与不同类型的I/O设备进行通信。

超级I/O集群还负责处理来自I/O设备的中断请求。当设备完成一项任务或发生特定事件时,会向处理器发送中断请求。超级I/O集群接收这些请求并通知操作系统进行处理。

此外,超级I/O集群还支持虚拟化技术,可以同时与多个虚拟机进行通信。通过虚拟化技术,多个虚拟机可以共享有限的物理资源,并实现高效的I/O操作。

通过超级I/O集群的设计,处理器可以更好地管理和控制I/O设备的操作,从而提高系统的整体性能和可靠性。同时,超级I/O集群还可以简化设备驱动程序的开发和管理工作,降低系统维护的复杂度。

e. 鲲鹏920系统的部件互联

鲲鹏920系统的部件主要通过AMBA(Advanced Microcontroller Bus Architecture)总线进行互联。具体来说,主要的部件包括两个CPU DIE、一个IO DIE,以及共8组DDR4 channel。这些部件之间的互联关系如下:

1. 两个CPU DIE之间通过系统总线进行互联。
2. CPU DIE和IO DIE之间通过IO总线进行互联。
3. 8组DDR4 channel之间通过内存总线进行互联。

这样的互联方式可以满足处理器在高性能计算和数据处理方面的需求。同时,为了方便软件编程,鲲鹏处理器内部的高速设备也基于PCle,且可以通过PCle的配置空间进行配置。

4. 鲲鹏920处理器片上系统的内存存储系统

鲲鹏920处理器片上系统
DDR4内存条
L3 Cache
L2 Cache
L1 Cache
每个核心
4通道DDR4内存及PCIe40
L1指令Cache
L1数据Cache

a. 鲲鹏920处理器存储系统的层次结构

鲲鹏920处理器存储系统的层次结构可以分为四层,从下到上分别是:

  1. DDR内存子系统:该层是最低层,提供64位内存接口,支持8通道DDR4内存,容量可以根据实际需求进行扩展。
  2. L3缓存子系统:该层为每个CPU核心提供独立的L3缓存,容量为64KB,访问延时为3个时钟周期。
  3. L2缓存子系统:该层由两个L2缓存模块组成,每个模块的容量为32KB,访问延时为15个时钟周期。
  4. L1缓存子系统:该层包括指令、数据和分支指令,每个CPU核心都拥有独立的L1指令和数据缓存,容量为64KB,访问延时为1个时钟周期。

通过这种层次化的设计,可以显著减少内存访问延时,提高处理器的性能。同时,这种层次结构也使得处理器的存储系统更加灵活,可以根据不同的应用需求进行定制和扩展。

b. 鲲鹏920处理器的片上系统的L3 Cache

鲲鹏920处理器的片上系统的L3 Cache是处理器内核的共享缓存,它为每个CPU核心提供共享访问。L3 Cache的容量非常大,可以达到64KB,这意味着处理器内核可以在一个时钟周期内从L3 Cache中获取数据,这对于高性能计算和数据处理应用非常重要。

鲲鹏920处理器存储系统
DDR内存子系统
L3缓存子系统
L2缓存子系统
L1缓存子系统
8通道DDR4内存
每个CPU核心的L3缓存
两个L2缓存模块
每个CPU核心的L1指令缓存
每个CPU核心的L1数据缓存

同时,L3 Cache还被分成了两个独立的子系统:L3 Tag和L3 Data。L3 Tag负责存储虚拟地址到物理地址的映射关系,而L3 Data则负责存储数据。这种设计可以有效地提高数据访问的速度和准确性。

鲲鹏920处理器的片上系统的L3Cache是处理器内核的重要组件之一,它具有大容量、高性能的特点,可以满足各种高性能计算和数据处理应用的需求。

c. 鲲鹏920处理器的片上系统的主存系统

鲲鹏920处理器的片上系统的主存系统包括DDR4内存条和L3缓存

首先,DDR4内存条是鲲鹏920处理器片上系统的基本存储器,它直接与处理器内核相连,并被设计成可以在一个时钟周期内访问一次DDR4内存条的容量可以根据实际需求进行选择,最大容量没有明确限制。

其次,L3缓存是鲲鹏920处理器片上系统的核心存储器,它是处理器内核的共享缓存,被设计成可以在一个时钟周期内访问一次。L3缓存的容量非常大,可以达到64MB,可以满足高性能计算和数据处理应用的需求。

同时,鲲鹏920处理器的片上系统还采用了14纳米工艺,拥有64个CPU核心,支持SMT超线程技术,最高主频可达2.6GHz。另外,鲲鹏920还配备了32MB的二级缓存和48个PCIe 4.0通道,可支持高速数据传输和流畅的数据处理。

总之,鲲鹏920处理器的片上系统的主存系统具有大容量、高性能的特点,可以满足各种高性能计算和数据处理应用的需求。

d. 鲲鹏920处理器的片上系统的DDR控制器

鲲鹏920处理器的片上系统的DDR控制器是处理器与DDR4内存条之间的接口。这个控制器可以支持8个DDR4通道,每个通道的最大速率是2.6GHz最大容量是1TB。这种设计可以满足高性能计算和数据处理应用的需求,同时也为系统提供了更大的内存空间。

通过DDR控制器,处理器内核可以与DDR4内存条进行高速数据交换,实现快速的数据读写操作。这种设计可以显著提高系统的整体性能和数据处理能力。

总之,鲲鹏920处理器的片上系统的DDR控制器是处理器与内存之间的关键接口,它支持大容量、高性能的DDR4内存条,可以满足各种高性能计算和数据处理应用的需求。

e. 鲲鹏920处理器片上系统的NUMA架构

鲲鹏920处理器片上系统的NUMA(Non-Uniform Memory Access) 架构是一种内存管理架构,它具有非统一内存访问的特点。在NUMA架构中,内存被分为多个区域,每个区域称为一个节点,每个节点都有其自己的内存控制器和处理器。

在鲲鹏920处理器片上系统中,NUMA架构被分为四个层次:处理器层、本地节点层、home节点层和远程节点层

  1. 处理器层:这是最底层,包含单个物理核,称为处理器层。
  2. 本地节点层:对于某个节点中的所有处理器,此节点称为本地节点。
  3. home节点层:与本地节点相邻的节点称为home节点。
  4. 远程节点层:非本地节点或邻居节点的节点,称为远程节点。

在NUMA架构中,访问本地节点的内存比访问远程节点的内存更快,因此,在执行内存访问操作时,系统会自动将数据分配到最近的节点。这种内存管理方式可以提高内存访问速度和系统的整体性能。

鲲鹏920处理器片上系统的NUMA架构是一种非统一内存访问的架构,它可以提高内存访问速度和系统的整体性能,适用于各种高性能计算和数据处理应用。

f. 鲲鹏920处理器的片上系统的地址映射与变换

鲲鹏920处理器的片上系统的地址映射与变换主要涉及虚拟地址到物理地址的转换。这个过程是通过页表机制实现的。

具体来说,地址映射过程包括以下几个步骤:

  1. 地址转换:首先,CPU内核会根据虚拟地址计算出对应的物理地址。这个过程涉及到页表机制,其中页表是用来保存虚拟地址和物理地址映射关系的数据结构。
  2. 访问内存:然后,CPU内核将计算出的物理地址发送给内存控制器,通过内存控制器访问相应的内存单元。
  3. 数据传输:内存控制器根据物理地址读取或写入数据,实现数据在CPU内核和内存之间的传输。

在这个过程中,页表机制是实现地址映射的核心。页表机制将虚拟地址和物理地址建立了映射关系,使得CPU内核可以通过虚拟地址访问内存。同时,由于这种映射关系是动态变化的,因此系统可以根据实际需求动态调整内存的映射关系,以满足不同的应用需求。

鲲鹏920处理器的片上系统的地址映射与变换是通过页表机制实现的,这个过程实现了虚拟地址到物理地址的转换,使得CPU内核可以通过虚拟地址访问内存。这种机制提高了内存访问的灵活性和效率,适用于各种高性能计算和数据处理应用。

鲲鹏920处理器片上系统
地址转换
页表机制
访问内存
内存控制器
数据传输

参考:《鲲鹏处理器 架构与编程》(戴志涛 刘建培)
《Kunpeng处理器组织和芯片架构详解》(华为云社区-Jack20)
《Taishan处理器内核架构》
鲲鹏社区:完善的Kupeng开发者社区&论坛
海思官网:官方链接地址

相关文章:

DP读书:鲲鹏处理器 架构与编程(八)3.1鲲鹏处理器片上系统与Taishan处理器内核架构

鲲鹏处理器片上系统架构 一、鲲鹏处理器片上系统与Taishan处理器内核架构1. 鲲鹏处理器片上系统概况a. 鲲鹏处理器片上系统与鲲鹏芯片家族b. 鲲鹏920处理器片上系统的组成部件c. 鲲鹏920处理器片上系统的特征d. 鲲鹏920处理器片上系统的逻辑结构 2. Taishan V110 处理器内核微架…...

如何使用 HOOPS Exchange SDK 和 Polygonica Bridge

这里将讨论使用 HOOPS Exchange 和 Polygonica 以及它们之间的桥梁进行 CAD 访问和网格处理。--提供Crack HOOPS 全系列SDK HOOPS Exchange 基础知识 首先,让我们简单回顾一下 HOOPS Exchange。HOOPS Exchange 是一款具有 C 接口的数据访问 SDK,支持导入…...

spring异步框架使用教程

背景 在需求开发过程中,为了提升效率,很容易就会遇到需要使用多线程的场景。这个时候一般都会选择建一个线程池去专门用来进行某一类动作,这种任务到来的时候往往伴随着大量的线程被创建调用。而还有另外一种场景是整个任务的执行耗时比较长…...

【数学建模】清风数模正课3 插值算法

插值算法 在数模比赛中,很多类型的题目都需要根据已知的函数点进行数据分析和模型处理; 当此时题目所给的数据较少时,我们就无法进行准确科学的分析,所以需要更多的数据,也就是函数点; 这就需要使用数学…...

什么是eval()?eval是用来干什么的?

一、什么是eval()? eval() 是 JavaScript 中的一个全局函数,用于解析并执行传递给它的字符串作为 JavaScript 代码。 二、eval()是用来干什么的? 当调用 eval() 时,它会将传入的字符串参数视为 JavaScript 代码,并在调用位置执…...

JavaScript-console:JavaScript控制台(Console)常用方法

一、理解 console JavaScript 控制台(console)是一个开发人员在编写 JavaScript 代码时常用的工具。它是浏览器提供的一种界面,让开发人员能够追踪代码执行的状态和结果。JavaScript 控制台可以记录代码输出的信息、警告和错误,并…...

Nginx配置前后端分离

后端地址 1.本地环境 curl --request GET \--url http://localhost:8080/by-admin/captchaImage \--header Authorization: Bearer d7a035d9-b30c-4ca5-8951-8cec90607943确认后端 ip 端口 上下文 2.测试环境 部署到测试环境可能是 换成内网ip和内网服务端口(ip、端口 可能会…...

rabbitmq的发布确认

生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式, 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID (从 1 开始),一旦消息被投递到所有匹配的队列之后,broker 就会发送一个确认给生产者(包含消息的唯一 ID)&…...

RISC-V公测平台发布· CoreMark测试报告

一. CoreMark简介 CoreMark是一款用于评估CPU性能的基准测试程序,它包含了多种不同的计算任务,包括浮点数、整数、缓存、内存等方面的测试。CoreMark的测试结果通常被用来作为CPU性能的参考,它可以帮助开发人员和系统管理员评估不同处理器和…...

模型微调(fine-tune)

一、关于模型微调的一些基础知识 1、模型微调(fine-tune) 微调(fine-tune)通过使用在大数据上得到的预训练好的模型来初始化自己的模型权重,从而提升精度。这就要求预训练模型质量要有保证。微调通常速度更快、精度更高。当然,自己…...

云农场种植:互联网+智慧牧场,为农业注入新的活力和创新

随着科技的不断发展,数字化农业正逐渐成为现代农业的趋势。传统农业面临着土地资源有限、劳动力不足等问题,而云农场种植模式通过数字化技术的运用,互联网养殖着重于“绿色、特色产品和智慧生态”,通过建立“线上养殖线下托养线上…...

Hadoop学习一(初识大数据)

目录 一 什么是大数据? 二 大数据特征 三 分布式计算 四 Hadoop是什么? 五 Hadoop发展及版本 六 为什么要使用Hadoop 七 Hadoop vs. RDBMS 八 Hadoop生态圈 九 Hadoop架构 一 什么是大数据? 大数据是指无法在一定时间内用常规软件工具对其内…...

linux定时备份MySQL数据库循环删除前30天的备份文件

linux定时备份MySQL数据库循环删除前30天的备份文件 一、 检查有没安装crond,如果没有,先安装 1、先检查一下有没有cron rpm -qa|grep cron如果输入上面命令有如下显示,则不需要安装 2、没有安装的话,就使用一下命令安装 yum -y install …...

不加电透明屏:在场景化应用中,有哪些特点和优点?

不加电透明屏是一种新型的显示技术,它可以在不需要电源的情况下显示图像和文字。 这种屏幕的原理是利用光的折射和反射来实现显示效果,而不需要通过电流来激发像素点。 不加电透明屏的最大优点是节能环保。传统的显示屏需要消耗大量的电能来显示图像&a…...

全球公链进展| Shibarium已上线;opBNB测试网PreContract硬分叉;Sui 主网 V1.7.1 版本

01 ETH 以太坊最新一次核心开发者执行会议:讨论 Devnet 8 更新、ElP-4788、Holesky 测试网等 以太坊核心开发者 Tim Beiko 总结最新一次以太坊核心开发者执行会议(ACDE),讨论内容包括 Devnet 8 更新、ElP-4788、Holesky 测试网、…...

CSS中的display属性有哪些值?它们的作用?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS display 属性的不同取值和作用1. block2. inline3. inline-block4. none5. flex6. grid7. table、table-row、table-cell8. list-item9. inline-table、table-caption、table-column 等 ⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#x…...

ELKstack-日志收集案例

由于实验环境限制,将 filebeat 和 logstash 部署在 tomcat-server-nodeX,将 redis 和 写 ES 集群的 logstash 部署在 redis-server,将 HAproxy 和 Keepalived 部署在 tomcat-server-nodeX。将 Kibana 部署在 ES 集群主机。 环境:…...

基于GPT-4和LangChain构建云端定制化PDF知识库AI聊天机器人

参考: GitHub - mayooear/gpt4-pdf-chatbot-langchain: GPT4 & LangChain Chatbot for large PDF docs 1.摘要: 使用新的GPT-4 api为多个大型PDF文件构建chatGPT聊天机器人。 使用的技术栈包括LangChain, Pinecone, Typescript, Openai和Next.js…...

Python可视化工具分享

今天和大家分享几个实用的纯python构建可视化界面服务,比如日常写了脚本但是不希望给别人代码,可以利用这些包快速构建好看的界面作为服务提供他人使用。有关于库的最新更新时间和当前star数量。 streamlit (23.3k Updated 2 hours ago) Streamlit 可让…...

ethers.js:构建ERC-20代币交易的不同方法

在这篇文章中,我们将探讨如何使用ethers.js将ERC-20令牌从一个地址转移到另一个地址 Ethers是一个非常酷的JavaScript库,它能够发送EIP-1559事务,而无需手动指定气体属性。它将确定gasLimit,并默认使用1.5 Gwei的maxPriorityFeePerGas,从v5.6.0开始。 此外,如果您使用签名…...

[实践篇]13.23 QNX环境变量profile

一,profile简介 /etc/profile或/system/etc/profile是qnx侧的设置环境变量的文件,该文件适用于所有用户,它可以用作以下情形: 设置HOMENAME和SYSNAME环境变量设置PATH环境变量设置TMPDIR环境变量(/tmp)设置PCI以及IFS_BASE等环境变量等文件内容示例如下: /etc/profile…...

HDLBits-Verilog学习记录 | Getting Started

Getting Started problem: Build a circuit with no inputs and one output. That output should always drive 1 (or logic high). 答案不唯一,仅共参考: module top_module( output one );// Insert your code hereassign one 1;endmodule相关解释…...

flask模型部署教程

搭建python flask服务的步骤 1、安装相关的包 具体参考https://blog.csdn.net/weixin_42126327/article/details/127642279 1、安装conda环境和相关包 # 一、安装conda # 1、首先,前往Anaconda官网(https://www.anaconda.com/products/individual&am…...

一文详解4种聚类算法及可视化(Python)

在这篇文章中,基于20家公司的股票价格时间序列数据。根据股票价格之间的相关性,看一下对这些公司进行聚类的四种不同方式。 苹果(AAPL),亚马逊(AMZN),Facebook(META&…...

SpringBoot---内置Tomcat 配置和切换

😀前言 本篇博文是关于内置Tomcat 配置和切换,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力&#x…...

Qt 显示git版本信息

项目场景: 项目需要在APP中显示当前的版本号,考虑到git共同开发,显示git版本,查找bug或恢复设置更为便捷。 使用需求: 显示的内容包括哪个分支编译的,版本号多少,编译时间,以及是否…...

Mysql的视图和管理

MySQL 视图(view) 视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含列,其数据来自对应的真实表(基表) create view 视图名 as select语句alter view 视图名 as select语句 --更新成新的视图SHOW CREATE VIEW 视图名d…...

uniapp 顶部头部样式

<u-navbartitle"商城":safeAreaInsetTop"true"><view slot"left"><image src"/static/logo.png" mode"" class"u-w-50 u-h-50"></image></view></u-navbar>...

最新ai系统ChatGPT程序源码+详细搭建教程+mj以图生图+Dall-E2绘画+支持GPT4+AI绘画+H5端+Prompt知识库

目录 一、前言 二、系统演示 三、功能模块 3.1 GPT模型提问 3.2 应用工作台 3.3 Midjourney专业绘画 3.4 mind思维导图 四、源码系统 4.1 前台演示站点 4.2 SparkAi源码下载 4.3 SparkAi系统文档 五、详细搭建教程 5.1 基础env环境配置 5.2 env.env文件配置 六、环境…...

FairyGUI-Unity 自定义UIShader

FairyGUI中给组件更换Shader&#xff0c;最简单的方式就是找到组件中的Shader字段进行赋值。需要注意的是&#xff0c;对于自定的shader效果需要将目标图片进行单独发布&#xff0c;也就是一个目标图片占用一张图集。&#xff08;应该会有更好的解决办法&#xff0c;但目前还是…...

Excel/PowerPoint柱状图条形图负值设置补色

原始数据&#xff1a; 列1系列 1类别 14.3类别 2-2.5类别 33.5类别 44.5 默认作图 解决方案 1、选中柱子&#xff0c;双击&#xff0c;按如下顺序操作 2、这时候颜色会由一个变成两个 3、对第二个颜色进行设置&#xff0c;即为负值的颜色 条形图的设置方法相同...

el-date-picker 时间区域选择,type=daterange,form表单校验+数据回显问题

情景问题&#xff1a;新增表单有时间区域选择&#xff0c;选择了时间&#xff0c;还是提示必填的校验提示语&#xff0c;且修改时&#xff0c;通过 号赋值法&#xff0c;重新选择此时间范围无效。 解决方法&#xff1a;&#xff08;重点&#xff09; widthHoldTime:[]&#xf…...

LeetCode 面试题 01.02. 判定是否互为字符重排

文章目录 一、题目二、C# 题解 ​ 一、题目 给定两个由小写字母组成的字符串 s1 和 s2&#xff0c;请编写一个程序&#xff0c;确定其中一个字符串的字符重新排列后&#xff0c;能否变成另一个字符串&#xff0c;点击此处跳转。 示例 1&#xff1a; 输入: s1 “abc”, s2 “…...

学习maven工具

文章目录 &#x1f412;个人主页&#x1f3c5;JavaEE系列专栏&#x1f4d6;前言&#xff1a;&#x1f3e8;maven工具产生的背景&#x1f993;maven简介&#x1fa80;pom.xml文件(project object Model 项目对象模型) &#x1fa82;maven工具安装步骤两个前提&#xff1a;下载 m…...

手机直播源码开发,协议讨论篇(三):RTMP实时消息传输协议

实时消息传输协议RTMP简介 RTMP又称实时消息传输协议&#xff0c;是一种实时通信协议。在当今数字化时代&#xff0c;手机直播源码平台为全球用户进行服务&#xff0c;如何才能增加用户&#xff0c;提升用户黏性&#xff1f;就需要让一对一直播平台能够为用户提供优质的体验。…...

【JavaEE基础学习打卡05】JDBC之基本入门就可以了

目录 前言一、JDBC学习前说明1.Java SE中JDBC2.JDBC版本 二、JDBC基本概念1.JDBC原理2.JDBC组件 三、JDBC基本编程步骤1.JDBC操作的数据库准备2.JDBC操作数据库表步骤 四、代码优化1.简单优化2.with-resources探讨 总结 前言 &#x1f4dc; 本系列教程适用于JavaWeb初学者、爱好…...

2023/8/16 华为云OCR识别驾驶证、行驶证

目录 一、 注册华为云账号开通识别驾驶证、行驶证服务 二、编写配置文件 2.1、配置秘钥 2.2、 编写配置工具类 三、接口测试 3.1、测试接口 3.2、结果 四、实际工作中遇到的问题 4.1、前端传值问题 4.2、后端获取数据问题 4.3、使用openfeign调用接口报错 4.3、前端显示问题…...

【Java开发】 Mybatis-Plus 07:创建时间、更新时间自动添加

Mybatis-Plus 可以通过配置实体类的注解来自动添加创建时间和更新时间&#xff0c;这可以减轻一定的开发量。 1 在实体类中添加注解 public class User {TableId(type IdType.AUTO)private Long id;private String username;private String password;TableField(fill FieldF…...

解决vue2项目在IE11浏览器中无画面的兼容问题

解决vue2项目在IE11浏览器中无画面的兼容问题 背景介绍当前网上能找打的教程 背景介绍 当前项目面临其他浏览器都可以运行&#xff0c;但是在IE11浏览器中出现白屏的现象&#xff0c;F12后台也没有报错&#xff0c;项目月底也要交付了。当前项目的vue版本为2.6.11&#xff0c;…...

信号

信号也是IPC中的一种&#xff0c;是和管道&#xff0c;消息队列&#xff0c;共享内存并列的概念。 本文参考&#xff1a; Linux中的信号_linux中信号_wolf鬼刀的博客-CSDN博客 Linux系统编程&#xff08;信号处理 sigacation函数和sigqueue函数 )_花落已飘的博客-CSDN博客 Linu…...

产品经理的真实薪资有多少?今天带你看看

作为产品经理&#xff0c;除了需要拥有扎实的技术背景和出色的产品设计能力&#xff0c;还需具备出色的领导力和商业敏感度。因此&#xff0c;产品经理的薪资也越来越成为人们关注的话题。那么&#xff0c;一般来说&#xff0c;产品经理的薪资水平如何呢&#xff1f; 薪资多少…...

《一个操作系统的实现》windows用vm安装CentOS——从bochs环境搭建到第一个demo跑通

vm安装CentOS虚拟机带有桌面的版本。su输入密码123456。更新yum -y update 。一般已经安装好后面这2个工具&#xff1a;yum install -y net-tools wget。看下ip地址ifconfig&#xff0c;然后本地终端连接ssh root192.168.249.132输入密码即可&#xff0c;主要是为了复制网址方便…...

线程Thread

文章目录 一、概念1、进程2、线程3、CPU与线程的关系4、并行、并发5、线程的生命周期 二、创建1、继承Thread2、实现Runnable接口3、实现Callable接口 三、API1、获取运行使用的线程2、唯一标识3、线程名4、优先级5、是否处于活动状态6、守护线程7、join1、API2、有无join对比 …...

如何使用CSS实现一个渐变背景效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现渐变背景效果⭐ 线性渐变&#xff08;Linear Gradient&#xff09;⭐ 径向渐变&#xff08;Radial Gradient&#xff09;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订…...

初始C语言(7)——详细讲解有关初阶指针的内容

系列文章目录 第一章 “C“浒传——初识C语言&#xff08;1&#xff09;&#xff08;更适合初学者体质哦&#xff01;&#xff09; 第二章 初始C语言&#xff08;2&#xff09;——详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言&#xff08;3&#xff09;——…...

ArcGIS Pro技术应用(暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用)

GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来&#xff0c;达到对地理和属性信息的综合管理。GIS的…...

RISC-V公测平台发布 · 数据库在RISC-V服务器上的适配评估

前言 上一期讲到YCSB在RISC-V服务器上对MySQL进行性能测试&#xff08;RISC-V公测平台发布 使用YCSB测试SG2042上的MySQL性能&#xff09;&#xff0c;在这一期文章中&#xff0c;我们继续深入讨论RISC-V数据库的应用。本期就继续利用HS-2平台来测试数据库软件在RISC-V服务器…...

UE5.2 LyraDemo源码阅读笔记(五)输入系统

Lyra里使用了增强输入系统&#xff0c;首先知道增强输入系统里的三个类型配置。 一、Input Actions (IA)&#xff1a; 输入操作带来的变量&#xff0c;与玩家的输入组件绑定&#xff0c;回调里驱动玩家行为。 二、InputMappingContext&#xff08;IMC&#xff09;&#xff1a…...

线段树详解——影子宽度

OK&#xff0c;今天来讲一讲线段树~~ 线段树是什么线段树的实现线段树的时间复杂度线段树的应用线段树的节点结构其他操作和优化例题——影子宽度输入输出格式输入格式输出格式 输入输出样例输入样例输出样例 例题讲解 线段树是什么 线段树&#xff08; S e g m e n t Segmen…...

使用R语言绘制折线图

写在前面 昨天我们分享了使用Python绘制折线图的教程,跟着NC学作图 | 使用python绘制折线图,考虑到很多同学基本不使用Python绘图。那么,我们也使用R语言复现此图形。 此外,在前期的教程中,我们基本没有分享过折线图的教程。因此,我们在这里也制作一期关于折线图的教程。…...