【RISC-V 指令集】RISC-V DSP 扩展指令集介绍(一)
前言:
本笔记是基于对RISC-V DSP扩展指令集文档总结的,《P-ext-proposal.pdf》文档的关键内容如下:
主要介绍了RISC-V的P扩展指令集及其相关细节。
首先,对P扩展指令进行了概述,并列出了其与其他扩展重复的指令。
接着,详细描述了P扩展的子集,包括Zbpbo扩展和Zpn扩展(适用于RV32和RV64)的指令。
此外,还提供了仅适用于RV64的详细指令描述。
文档还介绍了新的用户控制和状态寄存器,并提供了指令编码表。最后,列出了因RVB重叠而被移除的指令。
这份文档为RISC-V的P扩展指令集提供了全面而详细的信息,包括指令的描述、编码、以及与其他扩展的关系。这对于理解、开发和优化基于RISC-V架构的系统非常有价值。同时,文档也提醒了开发者在使用P扩展时需要注意的兼容性和优化问题。
1. 介绍
数字信号处理(DSP)已成为现代电子系统的重要技术。广泛的现代应用利用DSP算法解决特定领域的问题,包括传感器融合、伺服电机控制、音频解码/编码、语音合成和编码、MPEG4解码、医学成像、计算机视觉、嵌入式控制、机器人、人机交互等。
提出的P指令集扩展提高了RISC-V CPU IP产品的DSP算法处理能力。通过添加RISC-V P指令集扩展,RISC-V CPU现在可以以更低的功耗和更高的性能运行这些各种DSP应用程序。
2. 缩写定义和术语
2.1 缩写定义
-
r.H == rH1: r[31:16],r.L == r.H0: r[15:0]
- r.H 表示寄存器的高 16 位(位 31 到 16),等同于 rH1。
- r.L 表示寄存器的低 16 位(位 15 到 0),等同于 r.H0。
-
r.B3: r[31:24],r.B2: r[23:16],r.B1: r[15:8],r.B0: r[7:0]
- r.B3 到 r.B0 分别表示从高位到低位的 8 位段。
-
r.B[x]: r[(x8+7):(x8+0)]
- r.B[x] 表示从第 x 个 8 位段开始的 8 位数据。
-
r.H[x]: r[(x16+15):(x16+0)]
- r.H[x] 表示从第 x 个 16 位段开始的 16 位数据。
-
r.W[x]: r[(x32+31):(x32+0)]
- r.W[x] 表示从第 x 个 32 位段开始的 32 位数据。
-
r.D[x]: r[(x64+63):(x64+0)]
- r.D[x] 表示从第 x 个 64 位段开始的 64 位数据。
-
r[xU]: 64 位数的上 32 位;xU 代表包含此上部分 32 位值的 GPR(通用寄存器)编号。
-
r[xL]: 64 位数的下 32 位;xL 代表包含此下部分 32 位值的 GPR 编号。
-
r[xU].r[xL]: 由一对 GPR 形成的 64 位数。
-
s>>: 有符号算术右移。
-
u>>: 无符号逻辑右移。
-
u<<: 逻辑左移,从右侧移入 0。
-
SAT.Qn(): 饱和至 [-2n, 2n-1] 范围内,若发生饱和,则设置 OV 标志。
-
SAT.Um(): 饱和至 [0, 2m-1] 范围内,若发生饱和,则设置 OV 标志。
-
ROUND(): 表示“四舍五入”,即向最高有效位加 1。
这些缩写定义和术语提供了对特定指令集或处理器架构中使用的寄存器和操作的简化表示。它们通常用于硬件描述语言、汇编语言或低级编程中,以简化复杂操作和提高代码可读性。
2.2. 术语
• Q格式(Qm.n):它描述了一个有符号的二进制定点数格式。“m”是包括符号位和整数位在内的位数,位于假想的二进制点之前,而“n”是跟随其后的分数位数。这种表示法代表一个在-2^(m-1)(包含)和2^(m-1)(不包含)范围内的有符号二进制定点值,该范围内有2^(m+n)个唯一值。例如,Q1.15表示一个在-1(包含)和1(不包含)范围内的数,该范围内有65536个唯一值。
• Qn:Q1.n的缩写格式。例如,Q7,Q15,Q31,Q63。
• Um:它表示一个无符号的二进制数,范围在0到(2^m)-1之间。
3. RISC-V P 扩展指令
3.1. SIMD 数据处理指令
3.1.1. 16位加法和减法指令
基于32位字元素内的两种16位算术运算类型的组合,SIMD 16位加/减指令可以分为6个主要类别:加法(两个16位加法)、减法(两个16位减法)、交叉加和减(一个加法和一个减法)、交叉减和加(一个减法和一个加法)、直接加和减(一个加法和一个减法)以及直接减和加(一个减法和一个加法)。
基于处理溢出条件的方式,SIMD 16位加/减指令可以分为5组:环绕(丢弃溢出)、有符号减半(通过丢弃最低有效位来保留溢出)、无符号减半、有符号饱和(剪裁溢出)和无符号饱和。
序号 | 指令 | 说明 |
1 | ADD16 rd, rs1, rs2 | 16-bit Addition |
2 | RADD16 rd, rs1, rs2 | 16-bit Signed Halving Addition |
3 | URADD16 rd, rs1, rs2 | 16-bit Unsigned Halving Addition |
4 | KADD16 rd, rs1, rs2 | 16-bit Signed Saturating Addition |
5 | UKADD16 rd, rs1, rs2 | 16-bit Unsigned Saturating Addition |
6 | SUB16 rd, rs1, rs2 | 16-bit Subtraction |
7 | RSUB16 rd, rs1, rs2 | 16-bit Signed Halving Subtraction |
8 | URSUB16 rd, rs1, rs2 | 16-bit Unsigned Halving Subtraction |
9 | KSUB16 rd, rs1, rs2 | 16-bit Signed Saturating Subtraction |
10 | UKSUB16 rd, rs1, rs2 | 16-bit Unsigned Saturating Subtraction |
11 | CRAS16 rd, rs1, rs2 | 16-bit Cross Add & Sub |
12 | RCRAS16 rd, rs1, rs2 | 16-bit Signed Halving Cross Add & Sub |
13 | URCRAS16 rd, rs1, rs2 | 16-bit Unsigned Halving Cross Add & Sub |
14 | KCRAS16 rd, rs1, rs2 | 16-bit Signed Saturating Cross Add & Sub |
15 | UKCRAS16 rd, rs1, rs2 | 16-bit Unsigned Saturating Cross Add & Sub |
16 | CRSA16 rd, rs1, rs2 | 16-bit Cross Sub & Add |
17 | RCRSA16 rd, rs1, rs2 | 16-bit Signed Halving Cross Sub & Add |
18 | URCRSA16 rd, rs1, rs2 | 16-bit Unsigned Halving Cross Sub & Add |
19 | KCRSA16 rd, rs1, rs2 | 16-bit Signed Saturating Cross Sub & Add |
20 | UKCRSA16 rd, rs1, rs2 | 16-bit Unsigned Saturating Cross Sub & Add |
21 | STAS16 rd, rs1, rs2 | 16-bit Straight Add & Sub |
22 | RSTAS16 rd, rs1, rs2 | 16-bit Signed Halving Straight Add & Sub |
23 | URSTAS16 rd, rs1, rs2 | 16-bit Unsigned Halving Straight Add & Sub |
24 | KSTAS16 rd, rs1, rs2 | 16-bit Signed Saturating Straight Add & Sub |
25 | UKSTAS16 rd, rs1, rs2 | 16-bit Unsigned Saturating Straight Add & Sub |
26 | STSA16 rd, rs1, rs2 | 16-bit Straight Sub & Add |
27 | RSTSA16 rd, rs1, rs2 | 16-bit Signed Halving Straight Sub & Add |
28 | URSTSA16 rd, rs1, rs2 | 16-bit Unsigned Halving Straight Sub & Add |
29 | KSTSA16 rd, rs1, rs2 | 16-bit Signed Saturating Straight Sub & Add |
30 | UKSTSA16 rd, rs1, rs2 | 16-bit Unsigned Saturating Straight Sub & Add |
3.1.2. 8位加法和减法指令
基于32位字元素内四个8位算术运算的类型,SIMD 8位加/减指令可以分为两大类别:加法(执行四个8位加法)和减法(执行四个8位减法)。
根据有符号或无符号运算中处理溢出条件的方式,SIMD 8位加/减指令又可以进一步分为五组:环绕(即丢弃溢出部分)、有符号减半(通过丢弃最低有效位来保留溢出)、无符号减半、有符号饱和(通过剪裁来处理溢出)和无符号饱和。
序号 | 指令 | 说明 |
1 | ADD8 rd, rs1, rs2 | 8-bit Addition |
2 | RADD8 rd, rs1, rs2 | 8-bit Signed Halving Addition |
3 | URADD8 rd, rs1, rs2 | 8-bit Unsigned Halving Addition |
4 | KADD8 rd, rs1, rs2 | 8-bit Signed Saturating Addition |
5 | UKADD8 rd, rs1, rs2 | 8-bit Unsigned Saturating Addition |
6 | SUB8 rd, rs1, rs2 | 8-bit Subtraction |
7 | RSUB8 rd, rs1, rs2 | 8-bit Signed Halving Subtraction |
8 | URSUB8 rd, rs1, rs2 | 8-bit Unsigned Halving Subtraction |
9 | KSUB8 rd, rs1, rs2 | 8-bit Signed Saturating Subtraction |
10 | UKSUB8 rd, rs1, rs2 | 8-bit Unsigned Saturating Subtraction |
3.1.3. 16位移位指令
Table 3. SIMD 16-bit Shift Instructions
序号 | 指令 | 说明 |
1 | SRA16 rd, rs1, rs2 | 16-bit Shift Right Arithmetic |
2 | SRAI16 rd, rs1, im4u | 16-bit Shift Right Arithmetic Immediate |
3 | SRA16.u rd, rs1, rs2 | 16-bit Rounding Shift Right Arithmetic |
4 | SRAI16.u rd, rs1, im4u | 16-bit Rounding Shift Right Arithmetic Immediate |
5 | SRL16 rd, rs1, rs2 | 16-bit Shift Right Logical |
6 | SRLI16 rd, rs1, im4u | 16-bit Shift Right Logical Immediate\ |
7 | SRL16.u rd, rs1, rs2 | 16-bit Rounding Shift Right Logical |
8 | SRLI16.u rd, rs1, im4u | 16-bit Rounding Shift Right Logical Immediate |
9 | SLL16 rd, rs1, rs2 | 16-bit Shift Left Logical |
10 | SLLI16 rd, rs1, im4u | 16-bit Shift Left Logical Immediate |
11 | KSLL16 rd, rs1, rs2 | 16-bit Saturating Shift Left Logical |
12 | KSLLI16 rd, rs1, im4u | 16-bit Saturating Shift Left Logical Immediate |
13 | KSLRA16 rd, rs1, rs2 | 16-bit Shift Left Logical with Saturation & Shift Right Arithmetic |
14 | KSLRA16.u rd, rs1, rs2 | 16-bit Shift Left Logical with Saturation & Rounding Shift Right Arithmetic |
3.1.4. 8位移位指令
Table 4. SIMD 8-bit Shift Instructions
序号 | 指令 | 说明 |
1 | SRA8 rd, rs1, rs2 | 8-bit Shift Right Arithmetic |
2 | SRAI8 rd, rs1, im4u | 8-bit Shift Right Arithmetic Immediate |
3 | SRA8.u rd, rs1, rs2 | 8-bit Rounding Shift Right Arithmetic |
4 | SRAI8.u rd, rs1, im4u | 8-bit Rounding Shift Right Arithmetic Immediate |
5 | SRL8 rd, rs1, rs2 | 8-bit Shift Right Logical |
6 | SRLI8 rd, rs1, im4u | 8-bit Shift Right Logical Immediate |
7 | SRL8.u rd, rs1, rs2 | 8-bit Rounding Shift Right Logical |
8 | SRLI8.u rd, rs1, im4u | 8-bit Rounding Shift Right Logical Immediate |
9 | SLL8 rd, rs1, rs2 | 8-bit Shift Left Logical |
10 | SLLI8 rd, rs1, im4u | 8-bit Shift Left Logical Immediate |
11 | KSLL8 rd, rs1, rs2 | 8-bit Saturating Shift Left Logical |
12 | KSLLI8 rd, rs1, im4u | 8-bit Saturating Shift Left Logical Immediate |
13 | KSLRA8 rd, rs1, rs2 | 8-bit Shift Left Logical with Saturation & Shift Right Arithmetic |
14 | KSLRA8.u rd, rs1, rs2 | 8-bit Shift Left Logical with Saturation & Rounding Shift Right Arithmetic |
3.1.5. 16位比较指令
Table 5. SIMD 16-bit Compare Instructions
序号 | 指令 | 说明 |
1 | CMPEQ16 rd, rs1, rs2 | 16-bit Compare Equal |
2 | SCMPLT16 rd, rs1, rs2 | 16-bit Signed Compare Less Than |
3 | SCMPLE16 rd, rs1, rs2 | 16-bit Signed Compare Less Than & Equal |
4 | UCMPLT16 rd, rs1, rs2 | 16-bit Unsigned Compare Less Than |
5 | UCMPLE16 rd, rs1, rs2 | 16-bit Unsigned Compare Less Than & Equal |
3.1.6. 8位比较指令
Table 6. SIMD 8-bit Compare Instructions
序号 | 指令 | 说明 |
1 | CMPEQ8 rd, rs1, rs2 | 8-bit Compare Equal |
2 | SCMPLT8 rd, rs1, rs2 | 8-bit Signed Compare Less Than |
3 | SCMPLE8 rd, rs1, rs2 | 8-bit Signed Compare Less Than & Equal |
4 | UCMPLT8 rd, rs1, rs2 | 8-bit Unsigned Compare Less Than |
5 | UCMPLE8 rd, rs1, rs2 | 8-bit Unsigned Compare Less Than & Equal |
3.1.7. 16位乘法指令
Table 7. SIMD 16-bit Multiply Instructions
序号 | 指令 | 说明 |
1 | SMUL16 rd, rs1, rs2 | 16-bit Signed Multiply |
2 | SMULX16 rd, rs1, rs2 | 16-bit Signed Crossed Multiply |
3 | UMUL16 rd, rs1, rs2 | 16-bit Unsigned Multiply |
4 | UMULX16 rd, rs1, rs2 | 16-bit Unsigned Crossed Multiply |
5 | KHM16 rd, rs1, rs2 | Q15 Signed Saturating Multiply |
6 | KHMX16 rd, rs1, rs2 | Q15 Signed Saturating Crossed Multiply |
3.1.8. 8位乘法指令
Table 8. SIMD 8-bit Multiply Instructions
序号 | 指令 | 说明 |
1 | SMUL8 rd, rs1, rs2 | 8-bit Signed Multiply |
2 | SMULX8 rd, rs1, rs2 | 8-bit Signed Crossed Multiply |
3 | UMUL8 rd, rs1, rs2 | 8-bit Unsigned Multiply |
4 | UMULX8 rd, rs1, rs2 | 8-bit Unsigned Crossed Multiply |
5 | KHM8 rd, rs1, rs2 | Q8 Signed Saturating Multiply |
6 | KHMX8 rd, rs1, rs2 | Q8 Signed Saturating Crossed Multiply |
3.1.9. 16位其他指令
Table 9. SIMD 16-bit Miscellaneous Instructions
序号 | 指令 | 说明 |
1 | SMIN16 rd, rs1, rs2 | 16-bit Signed Minimum |
2 | UMIN16 rd, rs1, rs2 | 16-bit Unsigned Minimum |
3 | SMAX16 rd, rs1, rs2 | 16-bit Signed Maximum |
4 | UMAX16 rd, rs1, rs2 | 16-bit Unsigned Maximum |
5 | SCLIP16 rd, rs1, imm4u | 16-bit Signed Clip Value |
6 | UCLIP16 rd, rs1, imm4u | 16-bit Unsigned Clip Value |
7 | KABS16 rd, rs1 | 16-bit Absolute Value |
8 | CLRS16 rd, rs1 | 16-bit Count Leading Redundant Sign |
9 | CLZ16 rd, rs1 | 16-bit Count Leading Zero |
10 | SWAP16 rd, rs1 | Swap Halfword within Word |
3.1.10. 8位其他指令
Table 10. SIMD 8-bit Miscellaneous Instructions
序号 | 指令 | 说明 |
1 | SMIN8 rd, rs1, rs2 | 8-bit Signed Minimum |
2 | UMIN8 rd, rs1, rs2 | 8-bit Unsigned Minimum |
3 | SMAX8 rd, rs1, rs2 | 8-bit Signed Maximum |
4 | UMAX8 rd, rs1, rs2 | 8-bit Unsigned Maximum |
5 | SCLIP8 rd, rs1, imm4u | 8-bit Signed Clip Value |
6 | UCLIP8 rd, rs1, imm4u | 8-bit Unsigned Clip Value |
7 | KABS8 rd, rs1 | 8-bit Absolute Value |
8 | CLRS8 rd, rs1 | 8-bit Count Leading Redundant Sign |
9 | CLZ8 rd, rs1 | 8-bit Count Leading Zero |
10 | SWAP8 rd, rs1 | Swap Halfword within Word |
3.1.11. 8位解压指令
Table 10. SIMD 8-bit Unpacking Instructions
序号 | 指令 | 说明 |
1 | SUNPKD810 rd, rs1 | Signed Unpacking Bytes 1 & 0 |
2 | SUNPKD820 rd, rs1 | Signed Unpacking Bytes 2 & 0 |
3 | SUNPKD830 rd, rs1 | Signed Unpacking Bytes 3 & 0 |
4 | SUNPKD831 rd, rs1 | Signed Unpacking Bytes 3 & 1 |
5 | SUNPKD832 rd, rs1 | Signed Unpacking Bytes 3 & 2 |
6 | ZUNPKD810 rd, rs1 | Unsigned Unpacking Bytes 1 & 0 |
7 | ZUNPKD820 rd, rs1 | Unsigned Unpacking Bytes 2 & 0 |
8 | ZUNPKD830 rd, rs1 | Unsigned Unpacking Bytes 3 & 0 |
9 | ZUNPKD831 rd, rs1 | Unsigned Unpacking Bytes 3 & 1 |
10 | ZUNPKD832 rd, rs1 | Unsigned Unpacking Bytes 3 & 2 |
RISC-V DSP扩展指令集文档:
https://download.csdn.net/download/u011376987/88898800
相关文章:
【RISC-V 指令集】RISC-V DSP 扩展指令集介绍(一)
前言: 本笔记是基于对RISC-V DSP扩展指令集文档总结的,《P-ext-proposal.pdf》文档的关键内容如下: 主要介绍了RISC-V的P扩展指令集及其相关细节。 首先,对P扩展指令进行了概述,并列出了其与其他扩展重复的指令。 …...
RocketMQ - CentOS 7.x 安装单机版并测试
【安装前环境准备】检查是否安装好JDK(必要):java -version查看CPU信息: # cat /proc/cpuinfo # lscpu # getconf _NPROCESSORS_ONLN # cat /sys/devices/system/cpu/online # cat /proc/interrupts | egrep -i cpu查看内存信息: # free -hm …...

[JavaWeb玩耍日记]HTML+CSS+JS快速使用
目录 一.标签 二.指定css 三.css选择器 四.超链接 五.视频与排版 六.布局测试 七.布局居中 八.表格 九.表单 十.表单项 十一.JS引入与输出 十二.JS变量,循环,函数 十三.Array与字符串方法 十四.自定义对象与JSON 十五.BOM对象 十六.获取…...

如何使用ArcGIS Pro创建最低成本路径
虽然两点之间直线最短,但是在实际运用中,还需要考虑地形、植被和土地利用类型等多种因素,需要加权计算最低成本路径,这里为大家介绍一下计算方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载…...

Neoverse CSS N3:实现市场领先能效的最快途径
区分老的架构 从云到边缘,Arm Neoverse 提供无与伦比的性能、效率、设计灵活性和 TCO 优势,正在颠覆传统基础设施芯片。 我们看到云和超大规模服务运营商正在推动更高的计算密度。随着 128 核心 CPU 设计上市(Microsoft Cobalt、阿里巴巴 Y…...

JavaScript实现的计时器效果
之前做过电商网站倒计时的效果,今天在倒计时的基础上,把代码修改了一下,改为计时器效果,实现了以下功能: 1.点击“开始”后,按秒计时且“开始”文字变为“停止”; 2.点击“停止”,计…...
仿函数(Functor(c++))
定义 仿函数(Functor)是一个可以像函数那样被调用的类对象。这意味着它实现了operator(),使得类的对象可以像函数那样被调用。 仿函数的主要特点 它是一个类。它重载了operator()。可以通过创建该类的对象,并像函数那样调用该对…...

智能汽车加速车规级存储应用DS2431P+TR 汽车级EEPROM 存储器IC
DS2431PT&R是一款1024位1-Wire EEPROM芯片,由四页存储区组成,每页256位。数据先被写入一个8字节暂存器中,经校验后复制到EEPROM存储器。该器件的特点是,四页存储区相互独立,可以单独进行写保护或进入EPROM仿真模式…...
js json转换成字符串
js中JSON数据转换成字符串,可以使用JSON.stringify()方法。 var obj {name: "张三", age: 18, gender: "男"}; var jsonString JSON.stringify(obj); console.log(jsonString); // 输出 {"name":"张三","age"…...
Linux笔记--基本操作指令
一、查看日期与日历 1.date指令 显示日期 #用法1:dateCST: China Standard Time时区,中国标准时间 #用法2: date 指定格式 [常用格式]: "%Y-%m-%d"(%F): 2022-07-25 "%H:%M:%S"(%T): 14:53:44 "%F %T" #用法3: date -d "-1 da…...

论文阅读:基于超像素的图卷积语义分割(图结构数据)
#Superpixel-based Graph Convolutional Network for Semantic Segmentation github链接 引言 GNN模型根据节点特征周围的边来训练节点特征,并获得最终的节点嵌入。通过利用具有不同滤波核的二维卷积对来自附近节点的信息进行整合,给定超像素方法生成的…...

记录踩过的坑-macOS下使用VS Code
目录 切换主题 安装插件 搭建Python开发环境 装Python插件 配置解释器 打开项目 打开终端 切换主题 安装插件 方法1 方法2 搭建Python开发环境 装Python插件 配置解释器 假设解释器已经通过Anaconda建好,只需要在VS Code中关联。 打开项目 打开终端...
30天JS挑战(第十四天)------数据的复制
第十四天挑战(数据的复制) 地址:https://javascript30.com/ 所有内容均上传至gitee,答案不唯一,仅代表本人思路 中文详解:https://github.com/soyaine/JavaScript30 该详解是Soyaine及其团队整理编撰的,是对源代码…...

【洛谷 P8682】[蓝桥杯 2019 省 B] 等差数列 题解(数学+排序+辗转相除法)
[蓝桥杯 2019 省 B] 等差数列 题目描述 数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中 N N N 个整数。 现在给出这 N N N 个整数,小明想知道包含这 N N N 个整数的最短的等差数列有几项? 输…...

Linux:kubernetes(k8s)部署CNI网络插件(4)
在上一章进行了node加入master Linux:kubernetes(k8s)node节点加入master主节点(3)-CSDN博客https://blog.csdn.net/w14768855/article/details/136420447?spm1001.2014.3001.5501 但是他们显示还是没准备好 看一下…...

docker save 命令 docker load 命令 快速复制容器
docker save 命令 docker load 命令 1、docker save 命令2、docker load 命令 1、docker save 命令 docker save 命令用于在系统上把正在使用的某个容器镜像 导出成容器镜像文件保存下载,以便在其他系统上导入这个容器镜像文件 以便快速在其他服务器上启动相同的容…...

Apache Flink连载(三十七):Flink基于Kubernetes部署(7)-Kubernetes 集群搭建-3
🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录...

【机器学习】实验6,基于集成学习的 Amazon 用户评论质量预测
清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 代码和报告均为本人自己实现(实验满分),此次代码开源大家可以自行参考学习 有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟…...

【寸铁的刷题笔记】图论、bfs、dfs
【寸铁的刷题笔记】图论、bfs、dfs 大家好 我是寸铁👊 金三银四,图论基础结合bfs、dfs是必考的知识点✨ 快跟着寸铁刷起来!面试顺利上岸👋 喜欢的小伙伴可以点点关注 💝 🌞详见如下专栏🌞 &…...

vue2 + axios + mock.js封装过程,包含mock.js获取数据时报404状态的解决记录,带图文,超详细!!!
vue axios mock.js 以下是封装的过程,记录一下 1、首先先了解什么是mock.js的用途及特点 官网地址:Mock.js (mockjs.com) 作用:生成随机数据,拦截 Ajax 请求 优势: 2、了解axios的原理及使用 官网地址:…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...