1.说明
在研究RISC-V的指令集的时候,其指令是模块化的,这就为其指令的扩展提供了更多的可能性。下面仅代表我对RISC V的P扩展指令的一些理解。

按照指令集的设计,其扩展分为基础指令和扩展指令部分。基础指令是必须实现的,扩展指令则可根据需求进行定制。
根据The RISC-V Instruction Set Manual版本为20191213的pdf来看,对P扩展的介绍并不多。
其描述也只有一段话,目前官方并未做出更多的描述,不过在GitHub上对P扩展有了更加详细的表述。
也就是P指令的扩展实际的作用是增加了RISC-V CPU IP产品的DSP算法处理能力。
通过对RISC-V指令的P扩展,可以以更低的功耗和更加高的性能运行这些DSP的应用程序。
2.P扩展与V扩展的差别
通过上述的理解来看,P扩展的官方描述Packed-SIMD Instructions,那么和V扩展代表的向量指令集有什么差异呢。
V扩展,向量计算会更加趋向于高效的处理音频和视频,以更低的功耗,更快的处理速度,更加简单的方式去处理图像、视频、音频等,大大提高处理器的性能。比较典型的应用比如流媒体,MPEG4和H264的编解码,语音识别和手写识别,FFT处理,复杂的计算等等。
P扩展,数字信号处理(DSP),更多的去处理一些特殊领域的计算,比如嵌入式中的MP3解码,伺服电机,嵌入式实时控制等。
虽然两种都是为了加速计算,用多媒体指令集来实现CPU处理吃力的计算功能,但是在应用领域也是有一些区别。
3.P扩展指令的实例简单解析
简单解释一下这里如何通过指令加速计算。
在文档的8-bit Addition & Subtraction Instructions中描述如下:
No.MnemonicInstructionOperation
1ADD8 rt, ra, rb8-bit Additionrt.B[x] = ra.B[x] + rb.B[x]; (RV32: x=3..0, RV64: x=7..0)
该指令是一份简单8位的加法,实际上调用该指令的时候,需要传递两个输入源,和输出结果。
因为是ADD8,所以以8bit相加,结果也是8bit。在C语言中定义为unsigned char。
比如定义一个unsigned char数组a1={1,2,3,4}。另外一个数组a1={2,3,4,5}。
那么把这两个数组通过ADD8指令相加,则得到ret={2,5,7,9}。
实现这个过程,如果用普通的计算方法计算,需要CPU的4个时钟才能完成这个过程,而如果采用RISC-V的P扩展指令进行计算,则只需要一个时钟周期便可完成。这样可以加速计算,降低功能,同时降低CPU的使用率。
编辑:lyn
-
DSP算法
+关注
关注
2文章
39浏览量
13970 -
RISC-V
+关注
关注
48文章
2797浏览量
51929
原文标题:RISC-V的P扩展
文章出处:【微信号:Embeded_IoT,微信公众号:嵌入式IoT】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
risc-v P扩展(一) P指令集简介
RISC-V B扩展介绍及实现
RISC-V 手册
时擎科技亮相2025 RISC-V中国峰会,深度解析高性能RISC-V SoC技术挑战与创新
RISC-V 的平台思维和生态思维
FPGA与RISC-V浅谈
芯来科技亮相RISC-V Day Tokyo 2025
Arm与RISC-V架构的优劣势比较
关于RISC-V芯片的应用学习总结
RISC-V MCU技术
risc-v芯片在电机领域的应用展望
RISC-V架构及MRS开发环境回顾
SiFive 推出高性能 Risc-V CPU 开发板 HiFive Premier P550

关于RISC-V的P扩展简述与实例解析
评论