前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RISC-V的P扩展

RISC-V的P扩展

作者头像
bigmagic
发布2021-04-30 11:29:46
3K2
发布2021-04-30 11:29:46
举报
文章被收录于专栏:嵌入式iot嵌入式iot嵌入式iot

RISC-V的P扩展

  • 1.说明
  • 2.P扩展与V扩展的差别
  • 3.P扩展指令的实例简单解析

1.说明

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

按照指令集的设计,其扩展分为基础指令和扩展指令部分。基础指令是必须实现的,扩展指令则可根据需求进行定制。

根据The RISC-V Instruction Set Manual版本为20191213的pdf来看,对P扩展的介绍并不多。

其描述也只有一段话,目前官方并未做出更多的描述,不过在GitHub上对P扩展有了更加详细的表述。

https://github.com/riscv/riscv-p-spec

也就是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.

Mnemonic

Instruction

Operation

1

ADD8 rt, ra, rb

8-bit Addition

rt.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的使用率。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式IoT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RISC-V的P扩展
    • 1.说明
      • 2.P扩展与V扩展的差别
        • 3.P扩展指令的实例简单解析
        相关产品与服务
        语音识别
        腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档