[发明专利]一种指令的生成方法、装置以及电子设备在审
申请号: | 202011093577.3 | 申请日: | 2020-10-13 |
公开(公告)号: | CN112230995A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 孙继芬;陈钦树;刘玉佳;廖述京 | 申请(专利权)人: | 广东省新一代通信与网络创新研究院 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郭浩辉;颜希文 |
地址: | 510000 广东省广州市高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 生成 方法 装置 以及 电子设备 | ||
本申请公开了一种指令的生成方法、装置以及电子设备,所述方法应用于编译器,所述编译器与DSP处理系统连接,该方法包括:在接收源代码时,从源代码中确定能向量化的循环体,并对循环体的指令作向量化处理生成SIMD指令;按照超长指令集架构将SIMD指令拼接成执行指令集;向DSP处理系统发送执行指令集,以使DSP处理系统对数据执行测试处理。本申请可以确定能进行并行处理的数据,对数据进行向量化处理并生成多个SIMD指令,将多个SIMD指令拼接成一个可并行处理的超长指令集架构,使得DSP处理系统可以在通过超长指令集架构同时接收多个SIMD指令,并行响应多个SIMD指令,从而可以提高数据处理效率。
技术领域
本申请涉及计算机技术领域,尤其涉及一种指令的生成方法、装置以及电子设备。
背景技术
DSP处理器一种能够实现数字信号处理技术的芯片。SIMD(Single InstructionMultiple Data,单指令多数据流)是一种能复制多个操作数,并把它们打包在大型寄存器进行多数据处理的一组指令集。在实际操作中,DSP处理器可以根据SIMD指令集对数据进行流水线操作,从而实现各种数字信号的快速处理。
但面对目前人工智能、大数据、多媒体技术的不断发展,当需要处理大量的高精度、同质且相互独立的数据时,若采用SIMD指令进行流水线操作,虽然能对多个数据进行运算操作,但SIMD指令每次只能执行一种运算功能的定点运算,处理的功能单一,处理效率低,均难以满足目前的处理需求。
发明内容
本申请实施例所要解决的技术问题在于,解决采用SIMD指令时,只能响应一种运算功能的指令作定点运算,处理的功能单一,处理效率低的问题。
为解决上述问题,本申请实施例提供一种指令的生成方法,所述方法应用于编译器,所述编译器与DSP处理系统连接,所述方法适于在计算装置中执行,至少包括如下步骤:
在接收源代码时,从所述源代码中确定能向量化的循环体,并对所述循环体的指令作向量化处理生成SIMD指令;
按照超长指令集架构将所述SIMD指令拼接成执行指令集;
向所述DSP处理系统发送所述执行指令集,以使所述DSP处理系统对数据执行测试处理。
进一步的,从所述源代码中确定能向量化的循环体,并对所述循环体的指令作向量化处理生成SIMD指令,包括:
从所述源代码查找依赖数和所述循环体对应的循环次数,所述依赖数小于或等于预设指令的宽度除以待处理数据的宽度;
当确定所述循环次数大于所述依赖数且所述循环体内的数据前后不依赖时,确定所述循环体为能向量化处理的内层循环;
将所述内层循环内的每个标量指令作向量化处理,生成SIMD指令。
进一步的,从所述源代码中确定能向量化的循环体,并对所述循环体的指令作向量化处理生成SIMD指令,包括:
从所述源代码中查找并打开循环体,得到展开循环体;
分别获取所述展开循环体对应的多个标量指令;
当所述多个标量指令相互之间不存在依赖关系时,将所述多个标量指令打包到向量指令中,生成SIMD指令。
进一步的,还涉及全局配置寄存器,所述全局配置寄存器分别与所述DSP处理系统和所述编译器连接;
所述生成SIMD指令,包括:
接收所述全局配置寄存器发送的寄存器的位宽值,所述寄存器的位宽值为所述全局配置寄存器根据每个数据的位宽长度与循环次数计算得到;
根据所述寄存器的位宽值确定预置寄存器的分配位宽;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东省新一代通信与网络创新研究院,未经广东省新一代通信与网络创新研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011093577.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种计算机软件开发用测试装置
- 下一篇:一种倾斜设置扫描识别头的智能药箱