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

【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组:环绕(丢弃溢出)、有符号减半(通过丢弃最低有效位来保留溢出)、无符号减半、有符号饱和(剪裁溢出)和无符号饱和。

Table 1. SIMD 16-bit Add/Subtract Instructions
序号指令说明
1ADD16 rd, rs1, rs216-bit Addition
2RADD16 rd, rs1, rs216-bit Signed Halving Addition
3URADD16 rd, rs1, rs216-bit Unsigned Halving Addition 
4KADD16 rd, rs1, rs216-bit Signed Saturating Addition
5UKADD16 rd, rs1, rs216-bit Unsigned Saturating Addition
6SUB16 rd, rs1, rs216-bit Subtraction
7RSUB16 rd, rs1, rs216-bit Signed Halving Subtraction
8URSUB16 rd, rs1, rs216-bit Unsigned Halving Subtraction
9KSUB16 rd, rs1, rs216-bit Signed Saturating Subtraction
10UKSUB16 rd, rs1, rs216-bit Unsigned Saturating Subtraction
11CRAS16 rd, rs1, rs216-bit Cross Add & Sub
12RCRAS16 rd, rs1, rs216-bit Signed Halving Cross Add & Sub
13URCRAS16 rd, rs1, rs216-bit Unsigned Halving Cross Add & Sub
14KCRAS16 rd, rs1, rs216-bit Signed Saturating Cross Add & Sub
15UKCRAS16 rd, rs1, rs216-bit Unsigned Saturating Cross Add & Sub
16CRSA16 rd, rs1, rs216-bit Cross Sub & Add
17RCRSA16 rd, rs1, rs216-bit Signed Halving Cross Sub & Add
18URCRSA16 rd, rs1, rs216-bit Unsigned Halving Cross Sub & Add
19KCRSA16 rd, rs1, rs216-bit Signed Saturating Cross Sub & Add
20UKCRSA16 rd, rs1, rs216-bit Unsigned Saturating Cross Sub & Add
21STAS16 rd, rs1, rs216-bit Straight Add & Sub
22RSTAS16 rd, rs1, rs216-bit Signed Halving Straight Add & Sub
23URSTAS16 rd, rs1, rs216-bit Unsigned Halving Straight Add & Sub
24KSTAS16 rd, rs1, rs216-bit Signed Saturating Straight Add & Sub
25UKSTAS16 rd, rs1, rs216-bit Unsigned Saturating Straight Add & Sub
26STSA16 rd, rs1, rs216-bit Straight Sub & Add
27RSTSA16 rd, rs1, rs216-bit Signed Halving Straight Sub & Add
28URSTSA16 rd, rs1, rs216-bit Unsigned Halving Straight Sub & Add
29KSTSA16 rd, rs1, rs216-bit Signed Saturating Straight Sub & Add
30UKSTSA16 rd, rs1, rs216-bit Unsigned Saturating Straight Sub & Add

3.1.2. 8位加法和减法指令

基于32位字元素内四个8位算术运算的类型,SIMD 8位加/减指令可以分为两大类别:加法(执行四个8位加法)和减法(执行四个8位减法)。

根据有符号或无符号运算中处理溢出条件的方式,SIMD 8位加/减指令又可以进一步分为五组:环绕(即丢弃溢出部分)、有符号减半(通过丢弃最低有效位来保留溢出)、无符号减半、有符号饱和(通过剪裁来处理溢出)和无符号饱和。

Table 2. SIMD 8-bit Add/Subtract Instructions

序号指令说明
1ADD8 rd, rs1, rs28-bit Addition
2RADD8 rd, rs1, rs28-bit Signed Halving Addition
3URADD8 rd, rs1, rs28-bit Unsigned Halving Addition
4KADD8 rd, rs1, rs28-bit Signed Saturating Addition
5UKADD8 rd, rs1, rs28-bit Unsigned Saturating Addition
6SUB8 rd, rs1, rs28-bit Subtraction
7RSUB8 rd, rs1, rs28-bit Signed Halving Subtraction
8URSUB8 rd, rs1, rs28-bit Unsigned Halving Subtraction
9KSUB8 rd, rs1, rs28-bit Signed Saturating Subtraction
10UKSUB8 rd, rs1, rs28-bit Unsigned Saturating Subtraction

3.1.3. 16位移位指令

Table 3. SIMD 16-bit Shift Instructions

序号指令说明
1SRA16 rd, rs1, rs216-bit Shift Right Arithmetic
2SRAI16 rd, rs1, im4u16-bit Shift Right Arithmetic Immediate
3SRA16.u rd, rs1, rs216-bit Rounding Shift Right Arithmetic
4SRAI16.u rd, rs1, im4u16-bit Rounding Shift Right Arithmetic Immediate
5SRL16 rd, rs1, rs216-bit Shift Right Logical
6SRLI16 rd, rs1, im4u16-bit Shift Right Logical Immediate\

7

SRL16.u rd, rs1, rs216-bit Rounding Shift Right Logical
8SRLI16.u rd, rs1, im4u16-bit Rounding Shift Right Logical Immediate
9SLL16 rd, rs1, rs216-bit Shift Left Logical
10SLLI16 rd, rs1, im4u16-bit Shift Left Logical Immediate
11KSLL16 rd, rs1, rs216-bit Saturating Shift Left Logical
12KSLLI16 rd, rs1, im4u16-bit Saturating Shift Left Logical Immediate
13KSLRA16 rd, rs1, rs216-bit Shift Left Logical with Saturation & Shift Right Arithmetic
14KSLRA16.u rd, rs1, rs216-bit Shift Left Logical with Saturation & Rounding Shift Right Arithmetic

3.1.4. 8位移位指令

Table 4. SIMD 8-bit Shift Instructions

序号指令说明
1SRA8 rd, rs1, rs28-bit Shift Right Arithmetic
2SRAI8 rd, rs1, im4u8-bit Shift Right Arithmetic Immediate
3SRA8.u rd, rs1, rs28-bit Rounding Shift Right Arithmetic
4SRAI8.u rd, rs1, im4u8-bit Rounding Shift Right Arithmetic Immediate
5SRL8 rd, rs1, rs28-bit Shift Right Logical
6SRLI8 rd, rs1, im4u8-bit Shift Right Logical Immediate

7

SRL8.u rd, rs1, rs28-bit Rounding Shift Right Logical
8SRLI8.u rd, rs1, im4u8-bit Rounding Shift Right Logical Immediate
9SLL8 rd, rs1, rs28-bit Shift Left Logical
10SLLI8 rd, rs1, im4u8-bit Shift Left Logical Immediate
11KSLL8 rd, rs1, rs28-bit Saturating Shift Left Logical
12KSLLI8 rd, rs1, im4u8-bit Saturating Shift Left Logical Immediate
13KSLRA8 rd, rs1, rs28-bit Shift Left Logical with Saturation & Shift Right Arithmetic
14KSLRA8.u rd, rs1, rs28-bit Shift Left Logical with Saturation & Rounding Shift Right Arithmetic

3.1.5. 16位比较指令

Table 5. SIMD 16-bit Compare Instructions

序号指令说明
1CMPEQ16 rd, rs1, rs216-bit Compare Equal
2SCMPLT16 rd, rs1, rs216-bit Signed Compare Less Than
3SCMPLE16 rd, rs1, rs216-bit Signed Compare Less Than & Equal
4UCMPLT16 rd, rs1, rs216-bit Unsigned Compare Less Than
5UCMPLE16 rd, rs1, rs216-bit Unsigned Compare Less Than & Equal

3.1.6. 8位比较指令

Table 6. SIMD 8-bit Compare Instructions

序号指令说明
1CMPEQ8 rd, rs1, rs28-bit Compare Equal
2SCMPLT8 rd, rs1, rs28-bit Signed Compare Less Than
3SCMPLE8 rd, rs1, rs28-bit Signed Compare Less Than & Equal
4UCMPLT8 rd, rs1, rs28-bit Unsigned Compare Less Than
5UCMPLE8 rd, rs1, rs28-bit Unsigned Compare Less Than & Equal

3.1.7. 16位乘法指令

Table 7. SIMD 16-bit Multiply Instructions

序号指令说明
1SMUL16 rd, rs1, rs216-bit Signed Multiply
2SMULX16 rd, rs1, rs216-bit Signed Crossed Multiply
3UMUL16 rd, rs1, rs216-bit Unsigned Multiply
4UMULX16 rd, rs1, rs216-bit Unsigned Crossed Multiply
5KHM16 rd, rs1, rs2Q15 Signed Saturating Multiply
6KHMX16 rd, rs1, rs2Q15 Signed Saturating Crossed Multiply

3.1.8. 8位乘法指令

Table 8. SIMD 8-bit Multiply Instructions

序号指令说明
1SMUL8 rd, rs1, rs28-bit Signed Multiply
2SMULX8 rd, rs1, rs28-bit Signed Crossed Multiply
3UMUL8 rd, rs1, rs28-bit Unsigned Multiply
4UMULX8 rd, rs1, rs28-bit Unsigned Crossed Multiply
5KHM8 rd, rs1, rs2Q8 Signed Saturating Multiply
6KHMX8 rd, rs1, rs2Q8 Signed Saturating Crossed Multiply

3.1.9. 16位其他指令

Table 9. SIMD 16-bit Miscellaneous Instructions

序号指令说明
1SMIN16 rd, rs1, rs216-bit Signed Minimum
2UMIN16 rd, rs1, rs216-bit Unsigned Minimum
3SMAX16 rd, rs1, rs216-bit Signed Maximum
4UMAX16 rd, rs1, rs216-bit Unsigned Maximum
5SCLIP16 rd, rs1, imm4u16-bit Signed Clip Value
6UCLIP16 rd, rs1, imm4u16-bit Unsigned Clip Value
7KABS16 rd, rs116-bit Absolute Value
8CLRS16 rd, rs116-bit Count Leading Redundant Sign
9CLZ16 rd, rs116-bit Count Leading Zero
10SWAP16 rd, rs1Swap Halfword within Word

3.1.10. 8位其他指令

Table 10. SIMD 8-bit Miscellaneous Instructions

序号指令说明
1SMIN8 rd, rs1, rs28-bit Signed Minimum
2UMIN8 rd, rs1, rs28-bit Unsigned Minimum
3SMAX8 rd, rs1, rs28-bit Signed Maximum
4UMAX8 rd, rs1, rs28-bit Unsigned Maximum
5SCLIP8 rd, rs1, imm4u8-bit Signed Clip Value
6UCLIP8 rd, rs1, imm4u8-bit Unsigned Clip Value
7KABS8 rd, rs18-bit Absolute Value
8CLRS8 rd, rs18-bit Count Leading Redundant Sign
9CLZ8 rd, rs18-bit Count Leading Zero
10SWAP8 rd, rs1Swap Halfword within Word

3.1.11. 8位解压指令

Table 10. SIMD 8-bit Unpacking Instructions

序号指令说明
1SUNPKD810 rd, rs1Signed Unpacking Bytes 1 & 0
2SUNPKD820 rd, rs1Signed Unpacking Bytes 2 & 0
3SUNPKD830 rd, rs1Signed Unpacking Bytes 3 & 0
4SUNPKD831 rd, rs1Signed Unpacking Bytes 3 & 1
5SUNPKD832 rd, rs1Signed Unpacking Bytes 3 & 2
6ZUNPKD810 rd, rs1Unsigned Unpacking Bytes 1 & 0
7ZUNPKD820 rd, rs1Unsigned Unpacking Bytes 2 & 0
8ZUNPKD830 rd, rs1Unsigned Unpacking Bytes 3 & 0
9ZUNPKD831 rd, rs1Unsigned Unpacking Bytes 3 & 1
10ZUNPKD832 rd, rs1Unsigned Unpacking Bytes 3 & 2

RISC-V  DSP扩展指令集文档:

https://download.csdn.net/download/u011376987/88898800

相关文章:

【RISC-V 指令集】RISC-V DSP 扩展指令集介绍(一)

前言&#xff1a; 本笔记是基于对RISC-V DSP扩展指令集文档总结的&#xff0c;《P-ext-proposal.pdf》文档的关键内容如下&#xff1a; 主要介绍了RISC-V的P扩展指令集及其相关细节。 首先&#xff0c;对P扩展指令进行了概述&#xff0c;并列出了其与其他扩展重复的指令。 …...

RocketMQ - CentOS 7.x 安装单机版并测试

【安装前环境准备】检查是否安装好JDK(必要)&#xff1a;java -version查看CPU信息&#xff1a; # cat /proc/cpuinfo # lscpu # getconf _NPROCESSORS_ONLN # cat /sys/devices/system/cpu/online # cat /proc/interrupts | egrep -i cpu查看内存信息&#xff1a; # free -hm …...

[JavaWeb玩耍日记]HTML+CSS+JS快速使用

目录 一.标签 二.指定css 三.css选择器 四.超链接 五.视频与排版 六.布局测试 七.布局居中 八.表格 九.表单 十.表单项 十一.JS引入与输出 十二.JS变量&#xff0c;循环&#xff0c;函数 十三.Array与字符串方法 十四.自定义对象与JSON 十五.BOM对象 十六.获取…...

如何使用ArcGIS Pro创建最低成本路径

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

Neoverse CSS N3:实现市场领先能效的最快途径

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

JavaScript实现的计时器效果

之前做过电商网站倒计时的效果&#xff0c;今天在倒计时的基础上&#xff0c;把代码修改了一下&#xff0c;改为计时器效果&#xff0c;实现了以下功能&#xff1a; 1.点击“开始”后&#xff0c;按秒计时且“开始”文字变为“停止”&#xff1b; 2.点击“停止”&#xff0c;计…...

仿函数(Functor(c++))

定义 仿函数&#xff08;Functor&#xff09;是一个可以像函数那样被调用的类对象。这意味着它实现了operator()&#xff0c;使得类的对象可以像函数那样被调用。 仿函数的主要特点 它是一个类。它重载了operator()。可以通过创建该类的对象&#xff0c;并像函数那样调用该对…...

智能汽车加速车规级存储应用DS2431P+TR 汽车级EEPROM 存储器IC

DS2431PT&R是一款1024位1-Wire EEPROM芯片&#xff0c;由四页存储区组成&#xff0c;每页256位。数据先被写入一个8字节暂存器中&#xff0c;经校验后复制到EEPROM存储器。该器件的特点是&#xff0c;四页存储区相互独立&#xff0c;可以单独进行写保护或进入EPROM仿真模式…...

js json转换成字符串

js中JSON数据转换成字符串&#xff0c;可以使用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时区&#xff0c;中国标准时间 #用法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模型根据节点特征周围的边来训练节点特征&#xff0c;并获得最终的节点嵌入。通过利用具有不同滤波核的二维卷积对来自附近节点的信息进行整合&#xff0c;给定超像素方法生成的…...

记录踩过的坑-macOS下使用VS Code

目录 切换主题 安装插件 搭建Python开发环境 装Python插件 配置解释器 打开项目 打开终端 切换主题 安装插件 方法1 方法2 搭建Python开发环境 装Python插件 配置解释器 假设解释器已经通过Anaconda建好&#xff0c;只需要在VS Code中关联。 打开项目 打开终端...

30天JS挑战(第十四天)------数据的复制

第十四天挑战(数据的复制) 地址&#xff1a;https://javascript30.com/ 所有内容均上传至gitee&#xff0c;答案不唯一&#xff0c;仅代表本人思路 中文详解&#xff1a;https://github.com/soyaine/JavaScript30 该详解是Soyaine及其团队整理编撰的&#xff0c;是对源代码…...

【洛谷 P8682】[蓝桥杯 2019 省 B] 等差数列 题解(数学+排序+辗转相除法)

[蓝桥杯 2019 省 B] 等差数列 题目描述 数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列&#xff0c;只记得其中 N N N 个整数。 现在给出这 N N N 个整数&#xff0c;小明想知道包含这 N N N 个整数的最短的等差数列有几项&#xff1f; 输…...

Linux:kubernetes(k8s)部署CNI网络插件(4)

在上一章进行了node加入master Linux&#xff1a;kubernetes&#xff08;k8s&#xff09;node节点加入master主节点&#xff08;3&#xff09;-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 命令用于在系统上把正在使用的某个容器镜像 导出成容器镜像文件保存下载&#xff0c;以便在其他系统上导入这个容器镜像文件 以便快速在其他服务器上启动相同的容…...

Apache Flink连载(三十七):Flink基于Kubernetes部署(7)-Kubernetes 集群搭建-3

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录...

【机器学习】实验6,基于集成学习的 Amazon 用户评论质量预测

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 代码和报告均为本人自己实现&#xff08;实验满分&#xff09;&#xff0c;此次代码开源大家可以自行参考学习 有任何疑问或者问题&#xff0c;也欢迎私信博主&#xff0c;大家可以相互讨论交流哟…...

【寸铁的刷题笔记】图论、bfs、dfs

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

vue2 + axios + mock.js封装过程,包含mock.js获取数据时报404状态的解决记录,带图文,超详细!!!

vue axios mock.js 以下是封装的过程&#xff0c;记录一下 1、首先先了解什么是mock.js的用途及特点 官网地址&#xff1a;Mock.js (mockjs.com) 作用&#xff1a;生成随机数据&#xff0c;拦截 Ajax 请求 优势&#xff1a; 2、了解axios的原理及使用 官网地址&#xff1a…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...