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

「RISC-V Arch」RISC-V 规范结构

日期:20230228

规范分类


根据 RISC-V 设计哲学,其规范文档也是高度模块化的:

ISA 规范(2 篇)

  • 非特权规范
  • 特权规范

非 ISA 规范(6篇)

  • Trace规范
  • ABI 规范
  • 外部调试规范
  • PLIC 规范
  • SBI 规范
  • UEFI 协议规范

以及其他未合并的扩展规范,目前不是重点

表 1 规范分类
ISAnone-ISA
正式审批

Volume 1, Unprivileged Specification version 20191213  [PDF]

Volume 2, Privileged Specification version 20211203  [PDF]

表 2,6 个规范
审批未集成见表 3,16 个扩展RISC-V Non-ISA Specifications · GitHub
进行中Specification Status - Home - RISC-V International (riscv.org),20+
表 2 none-ISA 规范

Specification name

Version

Publish Date

Description

RISC-V Community

Source Repository

Efficient Trace for RISC-V2.0June 2022Specifies the signals between the RISC-V core and the encoder, compressed branch trace algorithm, and the packet format used to encapsulate the compressed branch trace information to implement processor tracing.SOC Infrastructure Horizontal Committeeriscv-non-isa/tech-trace-spec
RISC-V ABIs Specification1.0November 2022Provides the processor-specific application binary interface document for RISC-VApplication & Tools Horizontal Committeeriscv-non-isa/riscv-elf-psabi-doc
RISC-V External Debug Support0.13.2March 2019Outlines a standard architecture for external debug support on RISC-V platforms.SOC Infrastructure Horizontal Committeeriscv/tech-debug-spec
RISC-V Platform-Level Interrupt Controller Specification1.0.0February 2023Delineates the operational parameters for a platform-level interrupt controller on RISC-V.Privileged Software Horizontal Committeeriscv/riscv-plic-spec
RISC-V Supervisor Binary Interface Specification1.0.0May 2022Describes the RISC-V Supervisor Binary Interface, known from here on as SBI which enables supervisor-mode (S-mode or VS-mode) software to be portable across all RISC-V implementations by defining an abstraction for platform (or hypervisor) specific functionality.Privileged Software Horizontal Committeeriscv-non-isa/riscv-sbi-doc
RISC-V UEFI Protocol Specification1.0.0May 2022Details all new UEFI protocols required only for RISC-V platforms.Privileged Software Horizontal Committeeriscv-non-isa/riscv-uefi
表3 已审批未集成 ISA 标准
RV32E and RV64E Base Integer Instruction SetsJanuary 2023RV32E/RV64E
“Ztso” Standard Extension for Total Store OrderingJanuary 2023Ztso
RISC-V Wait-on-Reservation-Set (Zawrs) extensionNovember 2022Zawrs
Zmmul ExtensionJune 2022Zmmul
PMP Enhancements for memory access and execution prevention on Machine mode (Smepmp)November 2021Smepmp
RISC-V Base Cache Management Operation ISA ExtensionsNovember 2021Zicbom, Zicbop, Zicboz
RISC-V Bit-Manipulation ISA-extensionsNovember 2021Zba, Zbb, Zbc, Zbs
RISC-V Count Overflow and Mode-Based Filtering ExtensionNovember 2021Sscofpmf
RISC-V Cryptography Extensions Volume I: Scalar & Entropy Source InstructionsNovember 2021Zbkb, Zbkc, Zbkx, Zknd, Zkne, Zknh, Zksed, Zksh, Zkn, Zks, Zkt, Zk, Zkr
RISC-V State Enable ExtensionNovember 2021Smstateen
RISC-V "stimecmp / vstimecmp" ExtensionNovember 2021Sstc
RISC-V Vector ExtensionNovember 2021Zve32x, Zve32f, Zve64x, Zve64f, Zve64d, Zve, Zvl32b, Zvl64b, Zvl128b, Zvl256b, Zvl512b, Zvl1024b, Zvl, Zv
The RISC-V Instruction Set Manual Volume II: Privileged ArchitectureNovember 2021

Sm1p12, Ss1p12, Sv57, Hypervisor, Svinval, Svnapot, Svpbmt

"Zfh" and "Zfhmin" Standard Extensions for Half-Precision Floating-PointNovember 2021Zfh, Zfhmin
"Zfinx", "Zdinx", "Zhinx", "Zhinxmin": Standard Extensions for Floating-Point in Integer RegistersNovember 2021Zfinx, Zdinx, Zhinx, Zhinxmin
“Zihintpause” Pause HintFebruary 2021Zihintpause

非特权 ISA 规范


非特权 ISA 规范对硬件平台术语、软件执行环境和 Harts、ISA 概述、内存、指令编码、异常/陷入/中断、非定义行为和数值等进行了简要的介绍。

规范重点描述了 RISC-V ISA 子集:RV32I 32 位整数指令集、RV32E 32 位精简整数指令集、RV64I/RV128I 64/128 位整数指令集、M 整数整除法指令集、A 原子操作指令集、Zicsr 控制状态寄存器、F 单精度浮点指令集、D 双精度浮点指令集、Q 双字精度浮点指令集、RVWMO 内存一致性等。

特权 ISA 规范


特权 ISA 规范首先对特权软件栈术语、特权级别、调试模式进行了简要介绍。

其次,对特权模式下的控制状态寄存器进行了介绍。

特权 ISA 分为 M 级别和 S 级别的特权级别。

对于 M 级别,介绍了 M 级别的控制状态寄存器、内存映射寄存器、特权指令、复位、不可屏蔽中断、物理地址属性、物理地址保护。

对于 S 级别,介绍了 S 级别的控制状态寄存器、指令、32/39/48/57 位虚拟内存系统、svnapot 翻译相邻性、svpbmt 基于页内存类型、svinval 小粒度地址转换表内存无效等。

hypervisor 扩展介绍了特权模式、hypervisor和虚拟 S 模式控制状态寄存器、指令、机器级别的控制状态寄存器、两级地址转换、陷入等。

ABI 规范


介绍

本规范为 RISC-V 提供了处理器专用应用二进制接口文档,本规范由以下三部分组成:

  • 调用规约
  • ELF 规范
  • DWARF 规范

该ABI的未来修订版将包括内存模型的规范映射集同步原语。

术语缩略语

 ABI 状态

调用规约 

调用规约主要从寄存器约定、过程调用约定、系统调用约定、C/C++ 类型描述、Linux 特定的 ABI 等方面进行了介绍。

寄存器约定:整数、浮点数、向量寄存器的一些约定。

过程调用约定:整数调用约定、硬件浮点调用约定、ILP32E 调用约定、ABI 命名、默认 ABI 等。

系统调用约定:未在本文档中规定,参考 RISC-V execution environment interface (e.g OS kernel ABI, SBI)。

C/C++ 类型描述:类型大小和对齐方式、类型表示、va_list/va_start/va_arg。

Linux 特定 ABI:类型大小和对齐方式、类型表示。

PLIC 规范


PLIC 指的是平台级别的中断控制器,PLIC 规范主要从以下几个方面进行了介绍:

  • 中断目标和 Hart 上下文、中断网关、中断通知、中断号、中断流程
  • PLIC 操作参数
  • 内存映射
  • 中断优先级
  • 中断等待状态位
  • 中断使能
  • 中断阈值
  • 中断声明过程
  • 中断完成  

SBI 规范


这个规范描述了 RISC-V 超级二进制接口,即SBI,通过 SBI 接口, RISC-V 能够实现 S 模式、VS 模式代码能够在不同的平台之间的可移植性。SBI 遵循了 RISC-V 的设计哲学,由一个非常小的核心部分和一些可选的模块扩展组成。 

SBI 整体来说是一个扩展,也就是说要不实现,要么就要完整实现。如果 sbi_probe_extention 指示出某个功能可用,那么所有版本要求的功能都需要实现,这个版本可以通过 sbi_get_spec_version 来获得。

高特权软件向管理模式提供 SBI 接口支持,这个软件可以叫做 SBI 实现或者 SEE。SEE 可以是图1中的 M 模式下运行时固件,也可以是图2 中的 HS 模式运行的虚拟机管理程序。

图1 无虚拟化扩展 RISC-V 系统
图2 有虚拟化扩展的 RISC-V 系统

 

 SBI 规范不会指定任何硬件发现的方法,S 模式软件必须通过其他工业标准来获取,比如 Device Tree 或者 ACPI。
 

UEFI 协议规范


设备树(DT)或高级配置和电源接口(ACPI)配置表用于向操作系统传达有关硬件的信息:一些

只有在启动时才知道信息,并且在操作系统或者引导器启动之前很早就需要这些信息来解析固件表。

一个例子是 RISC-V 系统上的引导 hartid。在非 UEFI 系统上,这通常作为内核的参数(在 a0中),但是,UEFI 系统需要遵循 UEFI 应用程序调用,因此不能在 a0 中传递。有一个现有的解决方案使用 DTS 中的 /chosen 节点传递此信息。然而,此解决方案不适用于基于 ACPI 的系统,因此,UEFI 协议对于基于 DT 和 ACPI 的系统都是优选的。

RISC-V 系统的 UEFI 协议为引导加载程序或操作系统提供早期信息系统。EDK2 和 u-boot 等固件需要在 RISC-V UEFI 系统上实现该协议。

该协议通常由引导加载程序在调用 ExitBootServices()之前调用。然后他们通过将信息发送给操作系统。

本规范规定的 RISCV_EFI_BOOT_PROTOCOL 版本为 0x00010000。全部的未来的版本必须向后兼容。如果新版本的规范出现倒退兼容性,必须定义新 GUID。

Trace规范


介绍

在复杂系统中,理解程序行为并不容易。在这样的系统中,软件有时不能按预期运行。这可能是由许多因素导致。例如,与其他核心、软件、外围设备的交互、实时事件、较差的实现或以上这些组合。

因为调试器的侵入性特点,并非总是可以使用调试器来观察正在运行的系统。提供程序运行数据的可视化非常重要,这需要在不产生大量数据情况下实现。

一个实现方法是通过采用处理器分支跟踪技术。

通过从指定执行地址进行跟踪,并让其将程序运行的 delta 以消息的形式发出来实现,这些 delta 主要由跳转、调用、返回以及分支指令导致,当然中断和异常也能导致 delta 改变。

因此,系统需要具有一些必备的组件:

  • 一种带有指令跟踪接口的内核,该接口输出所有相关信息,以允许成功创建处理器分支跟踪等。这是一个高带宽接口:在大多数实现中,它将为每个核心执行时钟周期提供大量数据(指令地址、指令类型、上下文信息等)
  • 连接到指令跟踪接口并将信息压缩为较低带宽跟踪包的硬件编码器
  • 连接到此指令跟踪接口并压缩将信息转换成较低带宽跟踪分组;
  • 用于传输的传输通道或用于存储这些跟踪数据包的存储器;
  • 一种解码器,通常是外部 PC上的软件,它接收跟踪数据包,并在知道原始哈特上运行的程序二进制文件的情况下,重建程序流。该解码步骤可以在 hart 执行时离线或实时完成

在 RISC-V 中,所有指令都是无条件执行的,或者至少可以根据程序二进制来确定它们的执行。可以假设增量之间的指令都是顺序执行的。因此,无需对整个指令流进行跟踪,只需要显示分支是否被执行以及间接执行的分支地址即可。当程序计数器的更改量无法从执行二进制文件时,需要为跟踪解码器提供目标地址(即地址下一个有效指令的)。例如,间接分支或跳转指令地址由寄存器的内容而不是嵌入的常量决定程序二进制文件。

中断通常与程序的执行异步发生,而不是故意作为特定指令或事件的结果。可以用相同的方式来考虑异常,即使它们通常可以链接回特定的指令地址。解码器通常不知道中断在指令序列中的何处发生,因此跟踪编码器必须报告正常程序流停止的地址,并给出异步目的地的指示,这可能与报告异常类型一样简单。当发生中断或异常,或处理器停止时,必须在跟踪中包含预先失效的最终指令。

本文档用于指定入口端口(RISC-V 核心和编码器之间的信号)、压缩分支跟踪算法以及用于封装压缩分支跟踪信息的数据包格式。

术语缩略语 

ATB: Arm trace bus

  • branch: an instruction which conditionally changes the execution flow
  • CSR: control/status register
  • decoder: a piece of software that takes the trace packets emitted by the encoder and reconstructs the execution flow of the code executed by the RISC-V hart
  • delta: a change in the program counter that is other than the difference between two instructions placed consecutively in memory
  • discontinuity: another name for ’delta’ (see above)
  • ELF: executable and linkable format
  • encoder: a piece of hardware that takes in instruction execution information from a RISC-V hart and transforms it into trace packets
  • EPC: exception program counter
  • exception: an unusual condition occurring at run time associated with an instruction in a RISC-V hart
  • hart: a RISC-V hardware thread
  • interrupt: an external asynchronous event that may cause a RISC-V hart to experience an unexpected transfer of control
  • ISA: instruction set architecture
  • jump: an instruction which unconditionally changes the execution flow
  • direct jump: an instruction which unconditionally changes the execution flow by changing the PC by a constant value
  • indirect jump: an instruction which unconditionally changes the execution flow by changing the PC to a computed value
  • inferable jump: a jump where the target address is supplied via a constant embedded within the jump opcode • uninferable jump: a jump which is not inferable (see above)
  • LSB: least significant bit
  • MSB: most significant bit
  • packet: the atomic unit of encoded trace information emitted by the encoder
  • PC: program counter
  • program counter: a register containing the address of the instruction being executed
  • retire: the final stage of executing an instruction, when the machine state is updated (some times referred to as ’commit’ or ’graduate’)
  • trap: the transfer of control to a trap handler caused by either an exception or an interrupt
  • updiscon: contraction of ’uninferable PC discontinuity’

规范主要介绍了编码器控制、分支跟踪、Hart 编码器接口、过滤器、时间戳、指令编码器输出包、数据跟踪编码器输出包、参考压缩分支跟踪算法、参数和发现、编码器、代码和包示例、代码片段和传输、未来方向等。

外部调试规范


介绍

当设计从模拟发展到硬件实现时,用户对系统当前状态的控制和理解会急剧下降。帮助启动和调试低级别软件和硬件,在硬件中内置良好的调试支持至关重要。当一个健壮的操作系统在内核上运行,软件可以处理许多调试任务。然而,在许多情况下硬件支持至关重要。

本文档概述了 RISC-V 平台上外部调试支持的标准架构。该体系结构允许多种实现和权衡,这是对

广泛的 RISC-V 实现。同时,本规范定义了接口,允许调试工具和组件基于 RISC-V ISA。

系统设计者可以选择添加额外的硬件调试支持,但本规范定义通用功能的标准接口

系统概述

图 3 显示了外部调试的主要组件,虚线所示的块是可选的。

用户与正在运行调试器(例如 gdb)的调试主机(例如笔记本电脑)交互。调试器与调试转换器(例如 OpenOCD,其可以包括硬件驱动程序)通信,以与调试传输硬件(例如 Olimex USB-JTAG 适配器)通信。调试传输硬件将调试主机连接到平台的调试传输模块(DTM)。DTM 使用调试模块接口(DMI)提供对一个或多个调试模块(DM)的访问。

平台中的每一个 Hart 都由一个 DM 控制,Hart 可能是异构的,hart-DM 映射没有进一步的限制,但通常单个内核中的所有hart都由同一个 DM 控制。在大多数平台中,只有一个 DM 可以控制平台中的所有 Hart 。

DM 在平台中提供对 Hart 的运行控制,抽象命令提供对 GPR 的访问,可以通过抽象命令或将程序写入可选的程序缓冲区来访问其他寄存器。

程序缓冲区允许调试器在 Hart 上执行任意指令,该机制也可用于访问内存,可选的系统总线访问块允许在不使用 RISC-V Hart 执行访问的情况下进行存储器访问。

每个 RISC-V Hart 可以实现一个触发模块。当满足触发条件时,harts 将停止并通知调试模块。

图3 debug overview

 此外,规范描述了调试模块、RISC-V 调试、调试传输模块、硬件实现、调试器实现等。

皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~
“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~

  

 下一篇 「RISC-V Arch」SBI 规范解读(上)

相关文章:

「RISC-V Arch」RISC-V 规范结构

日期:20230228 规范分类 根据 RISC-V 设计哲学,其规范文档也是高度模块化的: ISA 规范(2 篇) 非特权规范特权规范 非 ISA 规范(6篇) Trace规范ABI 规范外部调试规范PLIC 规范SBI 规范UEFI 协…...

【C】线程控制

创建线程 #include <pthread.h>int pthread_create(pthread_t * thread,const pthread_attr_t * attr,void *(*start_routine)(void*), void * arg);返回值&#xff1a;成功返回0&#xff0c;失败返回错误号。 thread&#xff1a;成功返回后&#xff0c;新创建的线程的…...

Maven工程打jar包的N种方式

Maven工程打jar包 一、IDEA自带打包插件二、maven插件打包2.1 制作瘦包&#xff08;直接打包&#xff0c;不打包依赖包&#xff09;2.2 制作瘦包和依赖包&#xff08;相互分离&#xff09;2.3 制作胖包&#xff08;项目依赖包和项目打为一个包&#xff09;2.4 制作胖包&#xf…...

一文了解GPU并行计算CUDA

了解GPU并行计算CUDA一、CUDA和GPU简介二、GPU工作原理与结构2.1、基础GPU架构2.2、GPU编程模型2.3、软件和硬件的对应关系三、GPU应用领域四、GPUCPU异构计算五、MPI与CUDA的区别一、CUDA和GPU简介 CUDA&#xff08;Compute Unified Device Architecture&#xff09;&#xf…...

全网资料最全Java数据结构与算法(1)

一、数据结构和算法概述 1.1什么是数据结构&#xff1f; 官方解释&#xff1a; 数据结构是一门研究非数值计算的程序设计问题中的操作对象&#xff0c;以及他们之间的关系和操作等相关问题的学科。 大白话&#xff1a; 数据结构就是把数据元素按照一定的关系组织起来的集合&a…...

【项目实战】SpringMVC拦截器HandlerInterceptor入门介绍

一、拦截器介绍 拦截器是应用程序级框架中常用的拦截用户请求、实施业务流程控制的模式,它可以将一些公共的、重复发生的业务逻辑从业务处理代码中独立出来,使系统的结构更加清晰,程序的复杂度也减小了。 拦截器是一个常见的特性,它可以实现任何自定义功能,而无需调整业…...

阿里淘宝新势力造型合伙人P8、年薪百万的欧阳娜娜也躲不过的魔鬼面试,看的我心服口服

阿里淘宝新势力造型合伙人P8、年薪百万的欧阳娜娜跳槽了&#xff0c;这不是关键。 她参加了网易有道明星语音录音员/代言人的面试&#xff0c;这也不是关键。 关键是她教科书式的面试过程&#xff0c;狠狠地给我们上了一课。 我是无意间刷到的这个视频的时候&#xff0c;就一…...

深度学习笔记:不同的反向传播迭代方法

1 随机梯度下降法SGD 随机梯度下降法每次迭代取梯度下降最大的方向更新。这一方法实现简单&#xff0c;但是在很多函数中&#xff0c;梯度下降的方向不一定指向函数最低点&#xff0c;这使得梯度下降呈现“之”字形&#xff0c;其效率较低 class SGD:"""随机…...

ElasticSearch 学习笔记总结(三)

文章目录一、ES 相关名词 专业介绍二、ES 系统架构三、ES 创建分片副本 和 elasticsearch-head插件四、ES 故障转移五、ES 应对故障六、ES 路由计算 和 分片控制七、ES集群 数据写流程八、ES集群 数据读流程九、ES集群 更新流程 和 批量操作十、ES 相关重要 概念 和 名词十一、…...

深入理解border以及应用

深入border属性以及应用&#x1f44f;&#x1f44f; border这个属性在开发过程中很常用&#xff0c;常常用它来作为边界的。但是大家真的了解border吗&#xff1f;以及它的形状是什么样子的。 我们先来看这样一段代码&#xff1a;&#x1f44f; <!--* Author: syk 185901…...

如何复现论文?什么是论文复现?

参考资料&#xff1a; 学习篇—顶会Paper复现方法 - 知乎 如何读论文&#xff1f;复现代码&#xff1f;_复现代码是什么意思 - CSDN 我是如何复现我人生的第一篇论文的 - 知乎 在我看来&#xff0c;论文复现应该有一个大前提和分为两个层次。 大前提是你要清楚地懂得自己要…...

22.2.28打卡 Codeforces Round #851 (Div. 2) A~C

A题 One and Two 题面翻译 题目描述 给你一个数列 a1,a2,…,ana_1, a_2, \ldots, a_na1​,a2​,…,an​ . 数列中的每一个数的值要么是 111 要么是 222 . 找到一个最小的正整数 kkk&#xff0c;使之满足&#xff1a; 1≤k≤n−11 \leq k \leq n-11≤k≤n−1 , anda1⋅a2⋅……...

Learining C++ No.12【vector】

引言&#xff1a; 北京时间&#xff1a;2023/2/27/11:42&#xff0c;高数考试还在进行中&#xff0c;我充分意识到了学校的不高级&#xff0c;因为题目真的没什么意思&#xff0c;虽然挺平易近人&#xff0c;但是……&#xff0c;考试期间时间比较放松&#xff0c;所以不能耽误…...

【数电基础】——逻辑代数运算

目录 1.概念 1.基本逻辑概念 2.基本逻辑电路&#xff08;与或非&#xff09; 逻辑与运算 与门电路&#xff1a; 逻辑或运算 或门电路&#xff1a; ​逻辑非运算&#xff08;逻辑反&#xff09; 非门电路​编辑 3.复合逻辑电路&#xff08;运算&#xff09; 与非逻辑…...

【Redis】什么是缓存与数据库双写不一致?怎么解决?

1. 热点缓存重建 我们以热点缓存 key 重建来一步步引出什么是缓存与数据库双写不一致&#xff0c;及其解决办法。 1.1 什么是热点缓存重建 在实际开发中&#xff0c;开发人员使用 “缓存 过期时间” 的策略来实现加速数据读写和内存使用率&#xff0c;这种策略能满足大多数…...

互联网衰退期,测试工程师35岁之路怎么走...

国内的互联网行业发展较快&#xff0c;所以造成了技术研发类员工工作强度比较大&#xff0c;同时技术的快速更新又需要员工不断的学习新的技术。因此淘汰率也比较高&#xff0c;超过35岁的基层研发类员工&#xff0c;往往因为家庭原因、身体原因&#xff0c;比较难以跟得上工作…...

动态规划(以背包问题为例)

1) 要求达到的目标为装入的背包的总价值最大&#xff0c;并且重量不超出2) 要求装入的物品不能重复动态规划(Dynamic Programming)算法的核心思想是&#xff1a;将大问题划分为小问题进行解决&#xff0c;从而一步步获取最优解的处理算法。动态规划算法与分治算法类似&#xff…...

Java异常

异常的体系结构 在java的Throwable下有Error和Exception两个子类 Error(错误):程序运行中出现了严重的问题,非代码性错误,无法处理,常见的有虚拟机运行错误和内存溢出等Exception(异常):是由于代码本身造成的问题,可以进行处理,异常一个可以分为运行时异常和编译时异常 运行…...

别克GL8改装完工,一起来看看效果

①豪华商务头等舱 别克GL8作为商务车&#xff0c;不管是家用还是商务接待&#xff0c;原车内饰都太掉档次了&#xff0c;所以车主要求全部换掉。>>织布座椅换成航空座椅 主副驾&#xff1a;改装纳帕皮 中排&#xff1a;改装水晶宝座豪华版航空座椅&#xff0c;带通风、加…...

mac 中 shell 一些知识

mac 设置环境变量首先得看你所使用的 shell shell 是一个命令行解释器&#xff0c;顾名思义就是机器外面的一层壳&#xff0c;用于人机交互&#xff0c;只要是人与电脑之间交互的接口&#xff0c;就可以称为 shell。表现为其作用是用户输入一条命令&#xff0c;shell 就立即解…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案

一、延迟敏感行业面临的DDoS攻击新挑战 2025年&#xff0c;金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征&#xff1a; AI驱动的自适应攻击&#xff1a;攻击流量模拟真实用户行为&#xff0c;差异率低至0.5%&#xff0c;传统规则引…...

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务&#xff0c;包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念&#xff0c;为通过安全认证接入的客户端提供线程。同样在该层上可…...